Go是一个图灵完备的语言
任何图灵完备的语言理论上都可以用来编译自身。比如c/c++, java, vb, php等等都可以。
至于怎么编译自身的:
用其它语言比如c++实现一个[Go语言编译器-1]
用Go语言写一个[Go语言编译器-2]
用这个c++实现的[Go语言编译器-1]编译第2步里面说的Go语言写的[Go语言编译器-2]
用第3步得到的[Go语言编译器-2],再编译一次第2步里面说的[Go语言编译器-2]的源码。
OK,现在有一个Go语言实现的编译器了,最开始那个c++写的编译器没用了,可以扔掉不要了。以后就不停的优化使用这个Go语言实现的自身的编译器就行了。
1.最简单的方法:public static String reverse1(String str)
{ return new StringBuffer(str).reverse().toString()
}
2.最常用的方法:
public static String reverse3(String s)
{char[] array = s.toCharArray()
String reverse = "" //注意这是空串,不是null
for (int i = array.length - 1i >= 0i--)
reverse += array[i]
return reverse
}
3.常用方法的变形:
public static String reverse2(String s)
{ int length = s.length()
String reverse = "" //注意这是空串,不是null
for (int i = 0i <lengthi++)
reverse = s.charAt(i) + reverse//在字符串前面连接, 而非常见的后面
return reverse
}