Go学习第一天

闲聊两句

从事java后端开发8年多,期间也曾零星看过Go语言、Python、Erlang等等,但都未曾认真学习过,恰好公司最近项目需要,之前用Go开发的项目因为同事离职,暂未人来接手,所以老大就找到我和另外一个同事,希望我们俩尽快把Go学起来并把项目维护起,给了两个周的过渡期,说实话,时间真的挺紧的,但是问题不大,闲聊到此,赶紧学起来吧!

Go的优势

  • 可直接编译成机器码
  • 不依赖其他库
  • 直接运行即可部署

静态类型语言:编译的时候检查出来影藏的大多数问题

语言层面的并发:1.天生的基因支持 2.充分的利用多核

强大的标准库: runtime系统调度机制,已经实现高效的垃圾回收机制,丰富的标准库

只有25个关键字,C语言简洁基因,内嵌C语法支持,面相对象特征(封装、集成、多态),跨平台

记录重点

import导包

  • 导入不使用,会报错,需要注释掉,或者在导包前加”_” 例如: _“demo-go-middle/study”

  • 可以给导入的包起一个别名mylib2 “demo-go-middle/study1”

  • 也可以使用”.“ 的方式进行导包,这样在调用接口的时候,就不用加类名,如果两个方法同名且在不同的类中,那么不建议使用”.”的方式

示例代码:

package main

import (
	mylib1 "demo-go-middle/study"
	. "emo-go-middle/study1"
)

func main() {
	mylib1.Lib1Test()
	Lib2Test()
}

Go学习第一天_第1张图片

init函数

Go学习第一天_第2张图片

iota 只能配合const()一起使用,iota只有在const进行累加效果

示例代码:

package main

import "fmt"

// 用const来定义枚举类型
const (
	// 可以在const()添加一个关键字 iota,每行的iota都会累加1,第一行的iota的默认值是0
	BEIJING   = 10 * iota // iota = 0
	SHANGHAI              // iota = 1
	CHONGQING             // iota = 2
)

const (
	a, b = iota + 1, iota + 2 // iota = 0, a = iota +1, b = iota +2, a = 1, b = 2
	c, d                      // iota = 1, c = iota +1, d = iota +2, c = 2, d = 3
	e, f                      // iota = 2, e = iota +1, f = iota +2, e = 3, f = 4
	g, h = iota * 2, iota * 3 // iota = 3, g = iota *2, h = iota *3, g = 6, h = 9
	i, k                      // iota = 4, i = iota *2, k = iota *3, i = 8, k = 12
)

func main() {
	// 用const定义常量,可以用来定义枚举类型
	const length int = 10
	fmt.Println("length =", length)
	fmt.Println("======================")
	fmt.Println("BEIJING =", BEIJING)
	fmt.Println("SHANGHAI =", SHANGHAI)
	fmt.Println("CHONGQING =", CHONGQING)
	fmt.Println("======================")
	fmt.Println("a =", a, ",b=", b)
	fmt.Println("c =", c, ",d=", d)
	fmt.Println("e =", e, ",f=", f)
	fmt.Println("g =", g, ",h=", h)
	fmt.Println("i =", i, ",k=", k)
}

一个类中,方法名称需要大写才能让外部调用,对外开放,如果方法名称不首字母大写,那么只能方法内调用 eg: LibTest()

指针

package main

import "fmt"

func changeValue(p int) {
	p = 10
}

func main() {
	var a int = 1
	changeValue(a)
	fmt.Println("a = ", a)
}

Go学习第一天_第3张图片

package main

import "fmt"

func changeValue(p *int) {
	*p = 10
}

func main() {
	var a int = 1
	changeValue(&a)
	fmt.Println("a = ", a)
}

Go学习第一天_第4张图片

*代表指针
&代表内存地址

你可能感兴趣的:(Go学习笔记,golang,学习,开发语言)