执行 Go 程序
让我们来看下如何编写 Go 代码并执行它。步骤如下:
-
打开编辑器如Sublime2,将以上代码添加到编辑器中。
-
将以上代码保存为 hello.go
-
打开命令行,并进入程序文件保存的目录中。
-
输入命令 go run hello.go 并按回车执行代码。
-
如果操作正确你将在屏幕上看到 "Hello World!" 字样的输出。
$ go run hello.go Hello, World!
-
我们还可以使用 go build 命令来生成二进制文件:
$ go build hello.go $ ls hello hello.go $ ./hello Hello, World!
- { 不能单独放在一行,所以以下代码在运行时会产生错误
字符串连接
Go 语言的字符串可以通过 + 实现:
package main
import "fmt"
func main() {
fmt.Println("Google" + "Runoob")
}
关键字
下面列举了 Go 代码中会使用到的 25 个关键字或保留字:
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
程序一般由关键字、常量、变量、运算符、类型和函数组成。
程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}。
程序中可能会使用到这些标点符号:.、,、;、: 和 …。
格式化字符串
Go 语言中使用 fmt.Sprintf 格式化字符串并赋值给新串:
package main
import (
"fmt"
)
func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2020-12-31"
var url="Code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
声明变量
一般形式是使用 var 关键字:var identifier type
package main
import "fmt"
func main() {
var a string = "Runoob"
fmt.Println(a)
var b, c int = 1, 2
fmt.Println(b, c)
}
指定变量类型但没有初始化,则变量默认为0;
不指定类型则根据赋值判定变量类型
简短形式,使用 := 赋值操作符
我们知道可以在变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,因此我们可以将它们简写为 a := 50 或 b := false。
a 和 b 的类型(int 和 bool)将由编译器自动推断。
这是使用变量的首选形式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值。使用操作符 := 可以高效地创建一个新的变量,称之为初始化声明。
常量
常量还可以用作枚举:
const ( Unknown = 0 Female = 1 Male = 2 )
iota 用法
实例
package main
import "fmt"
func main() {
const (
a = iota //0
b //1
c //2
d = "ha" //独立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢复计数
i //8
)
fmt.Println(a,b,c,d,e,f,g,h,i)
}
以上实例运行结果为:
0 1 2 ha ha 100 100 7 8
package main
import "fmt"
const (
i=1< j=3< k
l
)
func main() {
fmt.Println("i=",i)
fmt.Println("j=",j)
fmt.Println("k=",k)
fmt.Println("l=",l)
}
以上实例运行结果为:
i= 1 j= 6 k= 12 l= 24
函数返回多个值
Go 函数可以返回多个值,例如:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Google", "Runoob")
fmt.Println(a, b)
}