模块和函数总结
模块与用法
1.fmt和math
fmt:字符输出
math:数学模块
####输出数学pai(3.1415926…)
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pi)
}
math.Sqrt 返回 x 的平方根
math/cmplx
cmplx.Sqrt
math.Pow(a,b) a的b次方
端口距离的看风景看的
3.strings.Join()
strings.Join() Golang中的函数将字符串切片中存在的所有元素连接为单个字符串。
package main
// importing fmt and strings
import (
"fmt"
"strings"
)
// calling main method
func main() {
// array of strings.
str:= []string{"Geeks", "For", "Geeks"}
// joining the string by separator
fmt.Println(strings.Join(str, "-"))
}
结果:
Geeks-For-Geeks
官方牛逼用法:
package main
import (
"fmt"
//"strings"
)
func main() {
// 创建一个井字板(经典游戏)
board := [][]string{
[]string{"_", "_", "_"},
[]string{"_", "_", "_"},
[]string{"_", "_", "_"},
}
// 两个玩家轮流打上 X 和 O
board[0][0] = "X"
board[2][2] = "O"
board[1][2] = "X"
board[1][0] = "O"
board[0][2] = "X"
for i := 0; i < len(board); i++ {
//fmt.Printf("%s\n", strings.Join(board[i], " "))
fmt.Printf("%s\n", board[i])
}
}
4.append(s []T, vs …T)
为切片追加新的元素是种常用的操作,为此 Go 提供了内建的 append 函数。
package main
import "fmt"
func main() {
var s []int
printSlice(s)
// 添加一个空切片
s = append(s, 0)
printSlice(s)
// 这个切片会按需增长
s = append(s, 1)
printSlice(s)
// 可以一次性添加多个元素
s = append(s, 2, 3, 4)
printSlice(s)
}
func printSlice(s []int) {
fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}
5.range()
当使用 for 循环遍历切片时,每次迭代都会返回两个值。第一个值为当前元素的下标,第二个值为该下标所对应元素的一份副本。
package main
import "fmt"
var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
func main() {
for i, v := range pow {
fmt.Printf("2**%d = %d\n", i, v)
}
}
结果:
2**0 = 1
2**1 = 2
2**2 = 4
2**3 = 8
2**4 = 16
2**5 = 32
2**6 = 64