學(xué)習(xí)一門新的語言無非就是從基本的語法開始的。通過語法書來學(xué)習(xí)語言畢竟是非??菰锏?,所以我們不妨從最簡單的例子開始學(xué)習(xí)一門新的語言。例子不多,但是有代表性。
+進(jìn)行連接 if x:=function();x<10 {
fmt.Printf("x < 10,%d\n",x);
}else{
fmt.Print("x >= 10 ,%d\n",x);
}
聲明方式:
func funcName(input1 type1, input2 type2) (output1 type1, output2 type2)
type Person struct {
name string
age int
}
type Student struct {
Person // 默認(rèn)Person的所有字段
speciality string
}
+.訪問func (r ReceiverType) funcName(parameters) (results)*指針類型,但是調(diào)用的時候不需要,Go 語言自動幫你完成了。<-來發(fā)送和接受數(shù)據(jù)。ch <- v發(fā)送數(shù)據(jù),v:=<-ch接收數(shù)據(jù),ch 是 chan 類型。package main
import "fmt"
func sum(a []int, c chan int) {
total := 0
for _, v := range a {
total += v
}
c <- total // send total to c
}
func main() {
a := []int{7, 2, 8, -9, 4, 0}
c := make(chan int)
go sum(a[:len(a)/2], c)
go sum(a[len(a)/2:], c)
x, y := <-c, <-c // receive from c
fmt.Println(x, y, x + y)
}
select+case來選擇多個 channel。select + case <- time.After(5 * time.Second)來設(shè)定超時。package main
import "fmt"
func main() {
fmt.Println("hello, world")
}
package main
import "fmt"
func sub(a int, b int) int {
return a - b;
}
func main() {
fmt.Println(sub(2, 3))
}
package main
import "fmt"
func compare(a int, b int) {
if(a > b) {
fmt.Println("greater")
}else{
fmt.Println("smaller")
}
}
func main() {
compare(3, 2)
}
package main
import "fmt"
func test(a int) {
switch (a) {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
default:
fmt.Println("error")
}
}
func main() {
test(1)
test(2)
test(3)
}
package main
import "fmt"
func show(data int) {
var index int
index = 0
for {
if(index >= data) {
break
}
fmt.Println(index)
index ++
continue
}
}
func main() {
show(10)
}
package main
import "fmt"
type node struct {
data int
}
func(p* node)set(val int)() {
p.data = val
}
func(p* node)get() int {
return p.data;
}
func main() {
n := node{data: 10}
m := &n
m.set(12)
fmt.Println(m.get())
}