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 關注
- 142 瀏覽
添加回答
舉報