zoukankan      html  css  js  c++  java
  • Go语言基础变量定义及初始化

    package main
      import "fmt"
      func main(){
      //变量定义
        var v1 int
        var v2 string
        var v3 [10] int    //数组
        var v4 [] int      //数组切片
        var v5 struct{
          f int
        }
        var v6 *int      //指针
        var v7 map[string] int  //key 为string value为int的map
        var v8 func (a int) int
      //变量初始化
      var var1 int = 10
      var var2 = 10
      var var3 := 10
      fmt.Println("变量初始化")
      fmt.Printf("var1=%d, var2=%d, var3=%d ", var1, var2, var3)
      }

    常量定义
    const 使用iota 可以模拟enum
    iota 在每一个const出现时被重置为0,然后下一个const出现之前,每出现一次iota,其所代表的数字会自增1
    const(      //iota 被重置为0  
      c0 = iota  //c0 == 0
      c1 = iota  //c1 == 1
      c2 = iota  //c2 == 2
    )
    模拟enum
    const(
      Sunday = iota
      Monday
      Tuesday
      Wenesday
      Thursday
      Friday
      Saturday
      numberOfDays
    )

    数组及切片类似于C++的Vector容器
    数组定义:
      [32] byte            //长度为32的数组,每个元素为一个字节
      [2*N] struct {x, y int32}  //复杂类型数组
      [1000] *float64        //指针数组
      [3][5] int           //二维数组 3行5列
      [2][2][2] float64       //等同于[2]([2]([2] float64))
    获取数组长度使用 len()
      arrLength := len(arr)
    遍历数组方式
      for i := 0; i < len(arr); i++{
        fmt.PrintIn("Element", i, "of array is ", array[i])
      }
      for i, v := range array{
        fmt.Println("Array element[", i, "] = ", v);
      }
    数组切片
      基本数组创建切片
      var myArray [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
      var mySlice []int = myArray[:5]    //基于数组的前5个元素创建切片
      append(mySlice, 1, 2,3)      //动态添加数据
      mySlice2 := []int{8, 9, 10}    //直接通过数组创建切片
      mySlice = append(mySlice, mySlice2...)  //把一个slice追加到另一个slice等价于下面的操作
      mySlice = append(mySlice, 8, 9, 10)
      基于数组切片创建数组切片
      oldSlice := []int{1, 2, 3, 4, 5}
      newSlice := oldSlice[:3]  //基本oldSlice的前3个元素构建新数组切片

    map基本使用
    map定义 var map[string] int
    struct person {
      var name string
      var age int
    }

    //声明
    var myMap = map[string] person
    //创建
    myMap = make(map[string] person)
    //赋值
    myMap['1234'] = person{'name', 22}
    //创建并初始化
    myMap = make(map[string] person{'name1', 23})


  • 相关阅读:
    华硕路由器修改 Hosts 以达到局域网内自定义解析
    一款开源、高颜值的终端terminus,支持Windows、MacOS
    Windows 10启用Linux子系统(WSL)
    一款全能的下载工具Motrix,支持BT、磁力链、百度网盘等资源
    ubuntu 14.04 和16.04 快速下载
    CentOS 7一键安装Seafile搭建私有云存储
    background背景色
    3d爱心代码
    Mac Mini(late 2014) 添加NVMe固态组Fusion Drive
    member access within misaligned address 0x0000002c3931 for type 'struct ListNode‘
  • 原文地址:https://www.cnblogs.com/qifeng1991/p/4343308.html
Copyright © 2011-2022 走看看