通过这个例子可以了解数组的定义及其使用、切片的定义及其使用。同时,也可以了解变量的定义,各种控制语句的使用,类型的转换等。
这里给出的程序,计算1000以内的所有素数,输出的每一行是序号+素数。
Go语言程序:
// prime project main.go
package main
import (
"fmt"
"math"
)
const N int = 1000
var pflag [N + 1]bool
var prime []int
func esieve(n int) {
pflag[2] = true
for i := 3; i <= N; i += 2 {
pflag[i] = true
}
end := int(math.Sqrt(float64(n)))
for i := 3; i <= end; i += 2 {
step := i + i
if pflag[i] {
j := i + step
for j <= n {
pflag[j] = false
j += step
}
}
}
prime = append(prime, 1)
for i := 2; i <= N; i++ {
if pflag[i] {
prime = append(prime, i)
}
}
}
func main() {
esieve(N)
for i := range prime {
fmt.Printf("%d: %d\n", i, prime[i])
}
}
程序运行结果:
0: 1
1: 2
2: 3
3: 5
4: 7
5: 11
6: 13
7: 17
8: 19
9: 23
10: 29
11: 31
12: 37
13: 41
14: 43
15: 47
16: 53
17: 59
18: 61
19: 67
20: 71
21: 73
22: 79
23: 83
24: 89
25: 97
26: 101
27: 103
28: 107
29: 109
30: 113
31: 127
32: 131
33: 137
34: 139
35: 149
36: 151
37: 157
38: 163
39: 167
40: 173
41: 179
42: 181
43: 191
44: 193
45: 197
46: 199
47: 211
48: 223
49: 227
50: 229
51: 233
52: 239
53: 241
54: 251
55: 257
56: 263
57: 269
58: 271
59: 277
60: 281
61: 283
62: 293
63: 307
64: 311
65: 313
66: 317
67: 331
68: 337
69: 347
70: 349
71: 353
72: 359
73: 367
74: 373
75: 379
76: 383
77: 389
78: 397
79: 401
80: 409
81: 419
82: 421
83: 431
84: 433
85: 439
86: 443
87: 449
88: 457
89: 461
90: 463
91: 467
92: 479
93: 487
94: 491
95: 499
96: 503
97: 509
98: 521
99: 523
100: 541
101: 547
102: 557
103: 563
104: 569
105: 571
106: 577
107: 587
108: 593
109: 599
110: 601
111: 607
112: 613
113: 617
114: 619
115: 631
116: 641
117: 643
118: 647
119: 653
120: 659
121: 661
122: 673
123: 677
124: 683
125: 691
126: 701
127: 709
128: 719
129: 727
130: 733
131: 739
132: 743
133: 751
134: 757
135: 761
136: 769
137: 773
138: 787
139: 797
140: 809
141: 811
142: 821
143: 823
144: 827
145: 829
146: 839
147: 853
148: 857
149: 859
150: 863
151: 877
152: 881
153: 883
154: 887
155: 907
156: 911
157: 919
158: 929
159: 937
160: 941
161: 947
162: 953
163: 967
164: 971
165: 977
166: 983
167: 991
168: 997
程序说明(本程序包含以下要点) :
1.常量说明
2.全局变量
3.数组和切片
4.控制语句:if语句和for语句
5.变量定义:用赋值运算符号":="(一般赋值用"=",复合赋值运算符"+="等也是可以使用的)
6.数学函数:在库math中,例如函数math.Sqrt(),需要注意调用方式
7.类型转换:似乎需要强制的类型转换,例如:"end := int(math.Sqrt(float64(n)))"
8.增加切片元素,需要使用函数append()
参考链接:
1.Ubuntu安装Go语言环境
2.Ubuntu构筑LiteIDE的Go语言开发环境