go语言初步了解
来源:互联网 发布:vba和vb的区别 编辑:程序博客网 时间:2024/06/06 04:05
// myNote1 project main.gopackage main//go语言中提供不同的包,相当于java中不同的类,来提供功能import ( "fmt")var ( // 这种因式分解关键字的写法一般用于声明全局变量 aa int bb bool)func main() { //输出语句 fmt.Println("Hello World!") //定义变量 var i int i = 10 var j = "jjjjjjjjjjjj" k := "kkkkkkkkkkk" fmt.Println("变量:", i) fmt.Println("变量:", j) fmt.Println("变量:", k) //定义多个变量 var s, u, g int s, u, g = 10, 20, 30 fmt.Println("变量:", s) fmt.Println("变量:", u) fmt.Println("变量:", g) var a, b, c = "aaa", "bbb", "ccc" fmt.Println("变量:", a) fmt.Println("变量:", b) fmt.Println("变量:", c) d, e, f := "ddd", "eee", "fff" fmt.Println("变量:", d) fmt.Println("变量:", e) fmt.Println("变量:", f) //全局变量 fmt.Println("全局变量:", aa) fmt.Println("全局变量:", bb) //获取变量的内存地址 fmt.Println("内存地址:", &a) //当申明了一个变量,但是却没有使用它,那么会报jj declared and not used //var jj string = "jk" //定义常量 编程习惯都是以大写字母来定义常量的 //const 定义特定类型的常量 const LEFT int = 100 const RIGHT = 200 const UP, DOWN = 300, 400 const ( BEFORE = 500 AFTER = 600 ) fmt.Println("常量:", LEFT, RIGHT, UP, DOWN, BEFORE, AFTER) //运算 var v, z int = 10, 20 fmt.Println("加法:", v+z) fmt.Println("减法:", v-z) fmt.Println("乘法:", v*z) fmt.Println("除法:", v/z) fmt.Println("取余:", v%z) fmt.Println("小于等于:", v <= z) fmt.Println("等于:", v == z) //if else elseif if 10 == 10 { fmt.Println("if语句") } if 10 == 20 { fmt.Println("if语句") } else { fmt.Println("else语句") } //switch jk := "a" switch jk { case "a": fmt.Println("分支语句") break case "b": fmt.Println("xxxxx") break default: fmt.Println("--------") break } var index = 1 for index < 4 { fmt.Println("-------") index++ } var flat int = 3A: index = 1 for index < 3 { fmt.Println("xxxx") index++ } flat++ if flat < 5 { goto A } testFun1() testFun2(10, 20) fmt.Println("函数返回:", testFun3(10, 20)) x, y := testFun4(10, 20) fmt.Println("函数返回多个值:", x, y) var arr [3]int arr[0] = 1 arr[1] = 10 arr[2] = 32 { var op int = 0 for op < len(arr) { fmt.Println(arr[op]) op++ } } //不设置数组的大小 var arr1 = [...]float64{12.12, 34.2, 45.2} fmt.Println(arr1) var arr2 = [5]float32{11.23, 343.23, 34.5} fmt.Println(arr2) //数据结构指针 var in int = 100 fmt.Println("变量的地址", &in) //定义指针 指向整数的指针 var ini *int ini = &in fmt.Println("指针获取数据", *ini) //空指针 var ink *int fmt.Println("判断空指针", (ink == nil)) //数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。说白了就是java中的一个类,用于创建对象的一个模板 type Book struct { title string num int names []float32 flag bool } var book1 Book book1.flag = true book1.num = 10 book1.title = "曹雪坤" book1.names = []float32{1000.0, 2.0, 3.4, 7.0, 50.0} fmt.Println(book1) //Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活, //功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。 //说白了就是java中的集合 //切片利用make创建:T 代表被创建的切片元素的类型。 //函数 make 接受一个类型、一个长度(创建切片时的初始化长度)和一个可选的容量参数。调用 make 时,内部会分配一个数组,然后返回数组对应的切片。 //var numbers []int = make([]int, 5, 5) numbers := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} fmt.Println(numbers) fmt.Println("numbers[1:4] ==", numbers[1:4]) /* 默认下限为 0*/ fmt.Println("numbers[:3] ==", numbers[:3]) /* 默认上限为 len(s)*/ fmt.Println("numbers[4:] ==", numbers[4:]) fmt.Println("计算切片的容量:", cap(numbers)) fmt.Println("计算切片的长度:", len(numbers)) numbers = append(numbers, 13) fmt.Println("追加元素后:", numbers) //删除下标为9的元素 numbers = append(numbers[:9], numbers[10:]...) fmt.Println("删除指定位置的元素后:", numbers) //删除切片的最后一个元素 numbers = append(numbers[:len(numbers)-1], numbers[len(numbers):]...) fmt.Println("删除切片的最后一个元素:", numbers) fmt.Println("计算切片的长度:", len(numbers)) var number1 []int if number1 == nil { fmt.Println("切片是空的") } //创建map var countryCapitalMap map[string]string /* 创建集合 */ countryCapitalMap = make(map[string]string) /* map 插入 key-value 对,各个国家对应的首都 */ countryCapitalMap["France"] = "Paris" countryCapitalMap["Italy"] = "Rome" countryCapitalMap["Japan"] = "Tokyo" countryCapitalMap["India"] = "New Delhi" fmt.Println(countryCapitalMap["India"]) /* 使用 key 输出 map 值 */ for country := range countryCapitalMap { fmt.Println("Capital of", country, "is", countryCapitalMap[country]) } /* 查看元素在集合中是否存在 */ captial, ok := countryCapitalMap["India"] /* 如果 ok 是 true, 则存在,否则不存在 */ if ok { fmt.Println("Capital of India is----", captial) } else { fmt.Println("Capital of United States is not present") } //实现两个结构体 var phone Phone phone = new(IPhone) phone.call() phone = new(XiaoMi) phone.call()}//函数func testFun1() { fmt.Println("函数")}func testFun2(num1 int, num2 int) { fmt.Println("函数参数", num1+num2)}//函数返回单个值func testFun3(num1 int, num2 int) int { return num1 + num2}//函数返回多个值func testFun4(num1 int, num2 int) (int, int) { return num1 + num2, num1 - num2}//定义接口 利用不同的结构体创建继承该接口的不同的方法type Phone interface { //接口中的方法 call()}//定义结构体type IPhone struct{}//定义接口中的方法func (iphone IPhone) call() { fmt.Println("你用的手机是苹果")}//定义另一个结构体type XiaoMi struct{}//定义接口中的方法func (xiaoMi XiaoMi) call() { fmt.Println("你用的手机是小米: ")}
阅读全文
0 0
- go语言初步了解
- Go 语言初步
- go 语言的了解
- Go语言的初步认识
- nodejs php go语言了解
- PCL打印语言初步了解
- C语言编程初步了解
- c语言编程初步了解
- 初步对C语言的了解
- 对c语言的初步了解
- C语言和内存初步框架了解
- C语言之结构体初步了解
- GO语言学习: 项目构建 及编译 初步
- 对Go语言的一点初步的感受和经验。
- go语言web框架 beego初步使用笔记
- 对go语言的一些基础了解,勿喷
- Go语言基础学习一:对go的感性初步认识
- 对C语言内存对齐的初步了解
- MATLAB中的bsxfun函数
- 修改发布到weblogic服务器上的项目上下文根(项目访问名称)
- 重建二叉树
- oracle解决导出空表语句,找出空表,并执行alter
- SAP Cloud Platform 实现 SAP Web IDE 单点登录(ADFS)
- go语言初步了解
- java(服务端)-集成银联支付,含代码
- Validform表单校验插件
- YYCache的基本使用
- 【Python】Numpy简单入门
- 责任链模式的理解与实例
- C#开发Windows窗体应用程序的步骤
- 开发要搞清楚什么是并发,并行,串行,同步,异步?
- java 读取clob,blob转换为字符串