2 回答

TA贡献1780条经验 获得超5个赞
我想强调的几点:
Go的灵感来自许多语言,而不仅仅是C语言。
C:语句和表达式语法
帕斯卡:声明语法
Modula 2, Oberon 2: packages
CSP, Occam, Newsqueak, Limbo, Alef: 并发
BCPL:分号规则
小话:方法
新闻吱吱声: <-, :=
APL: iota
还有更多
从什么时候开始并成为C风格的语法?
foreach
range
第三,不要将“For”语句与子句和子句混淆。阅读规格。在 Go 中,您也可以通过以下方式执行此操作:
for
range
for i := 0; i < len(numbers); i++
但是,一旦你理解了它,子句就会强大得多,是的,它不是奇怪的语法。我建议阅读规范并查看一些示例。range
另外,请阅读Go的FAQ和Pike关于声明语法的博客。常见问题解答应该回答许多这样的问题。

TA贡献1810条经验 获得超5个赞
import "io"
Go有和包,尽管它们确实有一些重叠。例如,允许您写入任何 ,并允许您从任何 .fmtiofmt.Fprintio.Writerfmt.Fscanio.Reader
同样,您可以使用 写入控制台,并使用 从控制台读取。io.Copy(os.Stdout, something)io.Copy(something, os.Stdin)
int sum(int a, int b) {
我想我读到,通过首先,它使词法解析更快。此外,Go 函数可以具有命名的返回值:func
func sum(a int, b int) (n int)
我不确定你会如何使用其他语法做到这一点。
int numbers[4] = {1, 2, 3, 4}
Go 语法允许您省略类型,而 C 语言则无法做到这一点。
foreach (n in range(numbers))
Go 没有关键字,因为关键字越少,词法解析就越快。相反,您有不同的调用:whilefor
var n int
for {
if n > 9 {
break
}
println(n)
n++
}
var n int
for n < 9 {
println(n)
n++
}
for n := 0; n < 9; n++ {
println(n)
}
for range numbers {
println("hello")
}
for index := range numbers {
println(index)
}
for index, value := range numbers {
println(index, value)
}
为此:
result = sum(n, 2)
Go 有两种不同的变量赋值语法:
result := 1
result = 2
第一个是声明,第二个是分配给已声明的变量。
io.print(result)
fmt.Println是大写的,因为任何以大写字母开头的函数都是“公共”函数。这样可以节省打字或任何地方。publicpub
- 2 回答
- 0 关注
- 153 浏览
添加回答
举报