分享
  1. 首页
  2. 文章

go语言(二)变量

xming4321 · · 1947 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、定义赋值


定义一个int的

var myVar int



定义多个

var myVar, myVar1, myVar2 int



定义并赋予初始值

var myVar int = 1


定义多个并赋予初始值

var myVar, myVar1, myVar2 int = 1, 2,3


麻烦是吧。

其实可以简单:

var myVar, myVar1, myVar2 = 1, 2,3


但是还可以简单:

myVar, myVar1, myVar2 = 1, 2, 3

另外可以每个变量的类型可以不一样的哦

myVar, myVar1, myVar2 = 1, 2, "a"


但是这个方式不能用在函数外。 在函数外全局不能不加上var。不过了还得记住了在函数内定义的变量必须得使用否则编译不能通过。



二、数据类型

数字类型:


有通用的int 和float型,

int8 ,int16 ,int32 ,int64

byte ,uint8 ,uint16 ,uint32 ,uint64 (无符号型的)

而上面定义的int是与平台相关的。byte是unit8的别名是一样的类型。


这里要记住int 和 int16 int32 不能随便转换,所有的不同类型都不能互相赋值,必须得自己强制转换。

例如:

package main


import "fmt"


var myVar, myVar1, myVar2 int = 1, 2,3


func main() {

myV, myV1, myV2 := 1, 2,3

//var v1 int32 = 32

var v2 int64 = 34

v2 = int64(myV)

fmt.Printf("%d",v2)

fmt.Printf("%d",myV)

fmt.Printf("%d",myV1)

fmt.Printf("%d",myV2)

fmt.Printf("hello, world\n")

}





字符串:

类型名string,在go中都是用的utf8字符集,字符串不能直接修改。要修改如下:

s := "hello"
c := []byte(s) // 将字符串 s 转换为 []byte 类型
c[0] = 'c'
s2 := string(c) // 再转换回 string 类型
fmt.Printf("%s\n", s2)


布尔型:

类型名bool,值是truefalse,默认为false



复合数据类型struct,array,slice,map

struct:


type AStruct struct {

X int

Y int

}


myStruct := AStruct{X:1, Y:2}

myStruct.X = 100

myStruct.Y = 200



基本和c的一样 就是访问的时候用的是的是"."



数组array

数组定义:var by [32] byte

var stru [20] struct {x, y int32}

var [3][5] int //多维数组3行5列


这里先记住,go提供的数组是不能改变长度的,另外函数传递的时候传得是值,也就是说会被复制一份。


切片slice

看到上面是不是觉得数组用着不方便?不要紧有slice


定义:

1.从数组中创建一个数组切片

var mySlice [] int = myarray[1:] //数组从第一个元素开始所有的元素

var mySlice2 [] int = myarray[:6] //数组从开始到第六个元素开始所有的元素

var mySlice3 [] int = myarray[3:6] //数组从第三个元素到第六个元素

2.直接创建

mySlice := make([]int 3) //3个元素,初始值为0

mySlice2 := make([]int 3, 6) //3个元素,初始值为6

mySlice3 := [] int{1,2,3,4,5,6} //创建并赋值




map(可以说是hash或者说是字典)

声明

var mapMap map[string] mytype

函数创建

myMap = make(map[string] mytype, 100) //创建100个

赋值

myMap["123"] = mytype{1,3,4}

删除

delete(myMap, "123")




就这样,完!












有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:xming4321

查看原文:go语言(二)变量

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1947 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏