Go语言学习3

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值