go实例 - Hello World, Values, Variables and Constants

go实例 - Hello World, Values, Variables and Constants

介绍go中的 hello world , 值, 变量和常量

Hello World

我们的第一个程序将打印经典的"Hello, World!"消息。这是完整的源代码。
要运行该程序, 请将代码放入hello-world.go并使用go run
有时我们想将程序构建成二进制文件。我们可以使用go build来做到这一点, 然后我们可以直接执行构建的二进制文件。
现在我们可以运行和构建基本的 Go 程序, 让我们进一步了解该语言。

hello-world.go
1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}
log
1
2
3
4
5
6
7
8
9
$ go run hello-world.go
hello world

$ go build hello-world.go
$ ls
hello-world hello-world.go

$ ./hello-world
hello world

Values

Go 有多种值类型, 包括字符串、整数、浮点数、布尔值等, 以下是一些基本示例。

values.go
1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func main() {
// 字符串, 可以用 + 添加到一起
fmt.Println("go" + "lang")
fmt.Println("1+1=", 1+1)
fmt.Println("7.0/3.0=", 7.0/3.0)
fmt.Println(true && false)
fmt.Println(true || false)
fmt.Println(!true)
}
log
1
2
3
4
5
6
7
$ go run values.go
golang
1+1 = 2
7.0/3.0 = 2.3333333333333335
false
true
false

Variables

在 Go 中, 变量是显式声明给编译器使用的, 例如检查函数调用的类型正确性。var声明一个或多个变量, 可以一次声明多个变量, Go 将推断初始化变量的类型, 未进行相应初始化而声明的变量为零值。例如, 一个int类型变量的零值为0。:= 语法是声明和初始化变量的简写, 例如本例中的var f string="apple", 此语法仅在函数内部可用。

variables.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

import "fmt"

func main() {
var a = "initial"
fmt.Println(a)
var b, c = 1, 2
fmt.Println(b, c)
var d = true
fmt.Println(d)
var e int
fmt.Println(e)
f := "apple"
fmt.Println(f)
}
log
1
2
3
4
5
6
$ go run variables.go
initial
1 2
true
0
apple

Constants

Go 支持字符、字符串、布尔值和数值的常量。const声明一个常数值, const 语句可以出现在 var 语句可以出现的任何位置。常量表达式以任意精度执行算术运算。数值常量在给定类型之前没有类型, 例如通过显式转换。通过在需要类型的上下文中使用数字, 可以为数字给定类型, 例如变量赋值或函数调用。例如, math.Sin需要float64。

constant.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main

import (
"fmt"
"math"
)

const s string = "constant"

func main() {
fmt.Println(s)
const n = 500000000
const d = 3e20 / n
fmt.Println(d)
fmt.Println(int64(d))
fmt.Println(math.Sin(n))
}
log
1
2
3
4
5
$ go run constant.go
constant
6e+11
600000000000
-0.28470407323754404

参考链接

作者

孤独小狼

发布于

2024-01-06

更新于

2024-01-06

许可协议

评论