1.Go语言切片(Slice)
作用:在go语言中的数组长度有限而切片的长度无限制,可以随时增添或删减元素
1.定义切片
var name [ ] type 或者:
var name [ ] type = make ([ ] type,len) make函数创造切片
简写为 name := make([ ] type,len)
2.切片初始化
s:= [ ] int {1,2,3}
s:= arr[ : ]通过已知的数组来初始切片
s:=make([ ] int ,len ,cup)
3.len和cup函数
len函数用来获得切片的当前长度
cup函数可以用来获得切片的最长长度
输出切片时的切片类型为%v
切片未初始化之前的空切片默认长度为0,即nil
4.append()函数和copy()函数
numbers = append(numbers, 0)
numbers = append(numbers, 2,3,4)
/* 拷贝 numbers 的内容到 numbers1 */
copy(numbers1,numbers)
2.Go语言范围(Range)
range关键字用于for循环
在数组和切片中它返回元素的索引和索引对应的值
for key, value := range oldMap { newMap[key] = value }
只想读取key时
for key := range oldMap
同理只想读取value时
for _, value := range oldMap
实例:
package main
import "fmt"
func main() {
map1 := make(map[int]float32)
map1[1] = 1.0
map1[2] = 2.0
map1[3] = 3.0
map1[4] = 4.0
// 读取 key 和 value
for key, value := range map1 {
fmt.Printf("key is: %d - value is: %f\n", key, value)
}
// 读取 key
for key := range map1 {
fmt.Printf("key is: %d\n", key)
}
// 读取 value
for _, value := range map1 {
fmt.Printf("value is: %f\n", value)
}
}
3.Go语言集合(map)
1.定义map:
var name map[key]value
2.使用map:
name := make(map[key]value)
3.插入 name[" "] = " "
集合包含着key和value,每个key和value一一配对。
4.delete()函数
直接使用delete(name," ")
即可删除" "中的值,删除key后对应的value也会被删除
5.Go语言递归
Go语言的递归与python类似,在定义的过程中可以调用自己
在调用递归的过程中为了避免死循环,需要给出结束条件
##求jie'c
package main
import "fmt"
func Factorial(n uint64)(result uint64) {
if (n > 0) {
result = n * Factorial(n-1)
return result
}
return 1
}
func main() {
var i int = 15
fmt.Printf("%d 的阶乘是 %d\n", i, Factorial(uint64(i)))
}
##斐波那契数列
package main
import "fmt"
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-2) + fibonacci(n-1)
}
func main() {
var i int
for i = 0; i < 10; i++ {
fmt.Printf("%d\t", fibonacci(i))
}
}
6.Go语言数据类型转换
数据类型转换,即把一种数据类型转化为另一种数据类型
type_name(expression)
例如 var a int = 17
var b int = 5
var c float
c = float(a)/float(b)