|
@@ -18,7 +18,7 @@ package main
|
|
|
import "fmt"
|
|
|
|
|
|
func main() {
|
|
|
- fmt.Println("Hello, 世界")
|
|
|
+ fmt.Println("Hello, 世界")
|
|
|
}
|
|
|
```
|
|
|
|
|
@@ -41,10 +41,10 @@ int age = 10;
|
|
|
可以看到go的变量声明,修饰变量的类型在变量的后面,而且是以var关键字开头。
|
|
|
|
|
|
```
|
|
|
-var 变量名 类型 = 表达式
|
|
|
+var 变量名 类型 = 表达式
|
|
|
```
|
|
|
|
|
|
-最后面的赋值可以在声明的时候忽略,这样变量就有一个默认的值,称之为 `零值`。 `零值`是一个统称,以类型而定,比如int类型的零值为0,string类型的零值是""空字符串。
|
|
|
+最后面的赋值可以在声明的时候忽略,这样变量就有一个默认的值,称之为`零值`。`零值`是一个统称,以类型而定,比如int类型的零值为0,string类型的零值是""空字符串。
|
|
|
|
|
|
在go中除了以var声明变量之外,还有一种简短的变量声明方式:=,比如上面例子,可以如下简单声明:
|
|
|
|
|
@@ -275,7 +275,13 @@ func main() {
|
|
|
|
|
|
go func() {
|
|
|
sum:=0
|
|
|
- for i:=0;i<10;i++{ sum="sum+i" } result<-sum }() fmt.print(<-result) < code></10;i++{>
|
|
|
+ for i:=0;i<10;i++{
|
|
|
+ sum=sum+i
|
|
|
+ }
|
|
|
+ result<-sum
|
|
|
+ }()
|
|
|
+ fmt.Print(<-result)
|
|
|
+}
|
|
|
```
|
|
|
|
|
|
以上示例使用一个单独的goroutine求和,当得到结果时,存放在result这个chan里,然后供main goroutine读取出来。当result没有被存储值的时候,读取result是阻塞的,所以会等到结果返回,协同工作,通过chan通信。
|