做英文网站要多少钱,做外贸自己的公司网站,源代码查看WordPress文件,广州天河数据结构
数组
支持多维数组#xff0c;属于值类型#xff0c;支持range遍历 例子#xff1a;随机生成长度为10整数数组
package main
import (fmtmath/rand
)
// 赋值 随机获取100以内的整数
func RandomArrays() {var array [10]int //声明var…数据结构
数组
支持多维数组属于值类型支持range遍历 例子随机生成长度为10整数数组
package main
import (fmtmath/rand
)
// 赋值 随机获取100以内的整数
func RandomArrays() {var array [10]int //声明var max intfor i : 0; i 10; i {array[i] rand.Intn(100)if array[i] max {max array[i]}}fmt.Printf(数组内容:%v,长度为:%d, 最大值:%d\n, array, len(array), max) //获取数组长度len(array)
}Map // 创建mapcountryCapitalMap : make(map[string]string)// 增加Map元素故意写错的方便测试修改中国人非行走的五十万countryCapitalMap[China] ShanghaicountryCapitalMap[India] New DelhicountryCapitalMap[USA] Washington D.C.// 查询Map元素capital, present : countryCapitalMap[China]if present {fmt.Printf(中国的首都是 %s\n, capital)} else {fmt.Println(未找到国家)}// 修改Map元素countryCapitalMap[China] Beijing// 删除Map元素delete(countryCapitalMap, India)// 遍历mapfor country, capital : range countryCapitalMap {fmt.Printf(国家: %s, 首都: %s\n, country, capital)}
指针
引用类型
var a 100
b: a // 取地址 赋值给指针变量
c: *b // 指针变量中指向地址的值
var d *int //定义字符指针
d b
fmt.Println(a,b,c,*d) //100 0xc0000120d0 100 100
*b 666
fmt.Println(a,b,c,*d) //666 0xc0000120d0 100 666
a 999
fmt.Println(a,b,c,*d) //999 0xc0000120d0 100 999make 与 new make 只能用于初始化slicemapchan类型new 可以用于任何类型nil 代表空指针 var slice1 make([]int,5)
var map1 make(map[int]string)
var chan1 make(chan int,3)
var x *int new(int)
var y *int
var z * map[int]string new(map[int]string)
fmt.Println(xnil,ynil,znil) //输出falsetruefalse
函数
函数支持多个返回值支持闭包函数函数参数支持函数类型不定长参数用 ...不支持函数重载
返回多个值
交换X与Y的值并返回
func Swap(x int , y int) (int, int){return y, x
}
函数参数实现回调函数
type FuncType func(x int, y int) int //声明函数类型func Minus(x int, y int) int {return x - y
}
func CalFun(x int, y int, cal FuncType) int {return cal(x, y)
}
func main() {var result CalFun(100, 200, func(x int, y int) int { //匿名回调函数return x y})fmt.Println(result)fmt.Println(Minus(200, 100))
}
递归函数实现N的阶乘
func Factorial(n int64) int64 {if n 1 {return 1}return n * Factorial(n-1)
}函数选择题
func add(args ...int) int {sum : 0for _, arg : range args {sum arg}return sum
}
下面对add函数调用错误的是
判断哪个选择是错误的
Aadd(1, 2)
Badd(1, 3, 7)
Cadd([]int{1, 2})
Dadd([]int{1, 3, 7}...) A与B是普遍的数据传值结构 C与D是切片的传值结构但是add方法中的入参为...int 所以需要通过「...」将切片打散 add([]int{1, 3, 7}...)可以打散为add(1, 3, 7) C选项是切片的方式所以传输会异常