Go 语言概述 ( 上 )

来源:互联网 发布:php方面的书籍 编辑:程序博客网 时间:2024/05/16 13:41

Go 语言概述 (上)

1. Hello World 程序

main.go

package mainfunc main() {    print("Hello World")}

运行结果:
这里写图片描述

导入标准库 fmt (format 包含有格式化I/O函数)

main.go

package mainimport "fmt"func main() {    fmt.Println("Hello World")}

运行结果:
这里写图片描述

注: 请删除未使用的导入包,否则编译器会当作错误处理.如下图

这里写图片描述

原因: Go语言是静态链接的语言,会将运行时, 依赖库直接打包到可执行文件内部.那么编译器就会检查,如果存在没有使用的依赖库,自然会报错.

2. 变量

只用 var 关键字定义变量,支持类型推断,编译器会确保变量总是被初始化为零值.

mian.go

package mainimport "fmt"func main() {    var age int    var s = "my age is"    fmt.Println(s, age, "岁")}

运行结果:
这里写图片描述

注: 在函数内部还可以省略 var 关键字, 使用age := 22来定义变量.
在函数外部使用 := 和定义的变量未被使用编译器都会报错. 毕竟是静态链接的语言.

3. 控制语句

Go语言仅有三种流控制语句.

if

main.go

package mainimport (    "fmt")func main() {    num := 10    if num > 0 {        fmt.Println("正数")    } else if num == 0 {        fmt.Println("零")    }else {        fmt.Println("负数")    }}

for

mian.go

package mainimport (    "fmt")func main() {    for i := 0; i < 5; i++{        fmt.Println("Hello World ", i)    }}

mian.go

package mainimport (    "fmt")func main() {    x := 0    for x < 4 {  // 相当于 while(x < 4)        fmt.Println("x = ", x)        x ++    }}

main.go

package mainimport (    "fmt")func main() {    x := 0    for {  // 相当于 while(true)        fmt.Println("x = ", x)        x ++        if x > 4 {            break        }    }}

main.go

使用 for … range .. 可以返回索引和元素

package mainimport (    "fmt")func main() {    a := []int{11, 22, 33, 43}    for i, x := range a {        fmt.Print("i = ", i)        fmt.Println(", x = ", x)    }}

运行结果:
这里写图片描述

switch

main.go

package mainimport (    "fmt")func main() {    a := 'A'    switch a {    case 'A':        fmt.Println("this is A")    case 'B':        fmt.Println("this is B")    case 'C':        fmt.Println("this is B")    default:        fmt.Println("I don't know")    }}

同时switch也可以这样用:

package mainimport (    "fmt")func main() {    a := 10    switch {    case a > 0:        fmt.Println("正数")    case a < 0:        fmt.Println("负数")    default:        fmt.Println("0")    }}
0 0