继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Go(day2)

holdtom
关注TA
已关注
手记 1845
粉丝 240
获赞 991


Go开发

GO1.5之后, 底层都是用go写的,所以1.5后都需要安装go编译器

Go是强类型语,不同类型相加以及赋值是不允许的,所有的整数 初始化为0,所有浮点数初始为0.0,布尔类型初始化为false

如何一个代码文件最小单位都是包

各包直接最好别重名,负责会覆盖

只能导入库文件,不能导入另外一个包的可执行文件,也就是带有package main 开头的包

如果需要导入另外一个包,那这个被导入包的开头package 可以随意写

如果是同一包里面的函数,直接调用即可,无需import

需注意的是: 在运行go run 会报错, 需要go build 或者go install 后执行编译后的程序,不会报错

不同包中函数,通过包名+点+函数名进行调用

在开发go的时候,如果写入无用的代码(也就是没有执行,或调用) ,那也会报错!! (go 做的很好)

例如:如果import 导入fmt ,但是程序中没有使用,那就会报错

全局只能声明变量,一个语句是不能写在全局

可执行的程序,必须放在mian函数里面

包访问控制权限

大写意味着这个函数/变量是可导出

小写意味着这个函数/变量是私有的,包外部不能访问

初始化函数

func init(){      }

运行一个go程序的时候,会先执行init函数,运行完毕后,才会运行main函数

#需注意的是: 当导入包的时候,先执行导入包的init函数,然后执行本程序的init函数

Go基础

布尔类型  {输出bool类型是用 :%t 输出}

var b bool 和 var b bool = true 和 var b = true

操作符 == 和 !=

取反操作符: !b

逻辑操作类型:   (下面的运算结果就是布尔类型 )

==:

!= 

<

<=

>=

&& 和 || 操作符

&& :与   如果第一个为假 那后面就不需要运算

|| : 或   如果第一个为真 那后面就不需要运算

格式化输出占位符: %t  输出布尔类型!!

算数操作符, +、 -、 *、 /、 %

数据类型和操作符

整数和浮点数

一个字节是8位

int8、 int16、 int32、 int64

uint8、 uint16、 uint32、 uint64

int 和 uint,和操作系统平台相关

float32 和 float64浮点类型

所有整数 初始化为0,所有浮点数初始化为0.0,布尔类型初始化为false

复数类型

两种形式: complex64和complex128

var c complex64 = 5 + 10i

内置函数 complex(re, im) 构造⼀个复数

万能输出占位符: %V

字符串操作:

clipboard.png

位操作符

与操作: &

1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0

2. 或操作: |

1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 & 0 = 0

3. 异或: ^  (相同的等于0  不同的等于1)

1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0

4. 左移 <<

1 << 10 = 1024 1 << 20 = 1M 1 << 30 = 1G

5.右移 <<

1024 >> 10 = 1 1024 >> 1 = 512 1024 >> 2 = 256

常量

常量使用const修饰,代表永远是只读的,不能修改

const 只能修饰boolean, number( int相关类型、浮点类型、 complex)和string。

const(


a = 1

b = 2

c = 3

)

#iota 初始化默认为0,

##默认递增

const(


a = 1 << iota

b

c

)

变量

var (

a int //0

b string //“”

c bool //false

d int = 8 // 8

e string = “hello” //hello

)

结构体 (struct 就是结构体定义)

struct 就是结构体定义

type User struct {

    name string

    flag uint8

}

init方法和导入包

导入其他包概念,

func init(){}  初始化函数。。当init函数运行完毕。才会运行mian函数,先执行导入包的init函数。然后执行本程序的init函数

package main

import (

   _ "godream/day2/mysql_deveices"

   "fmt"

)

func main()  {

   fmt.Println("hello")

   Say()

}

条件判断和循环

for循环的几种写法

第一种写法

func TestFor()  {

   for a :=0;a < 10;a++{

      fmt.Println(a)

   }

}

第二种写法

func TestFor2()  {

   var a int =0

   for a <10{

      fmt.Println(a)

      a++

   }

}

第三种写法(循环字符串)

func TestForStr()  {

   str :="hello world"

   for index,val :=range str{

      fmt.Printf("index:%d --val:%c \n",index,val)

   }

}

第四种写法

func TestFor3()  {

   var a int =0

   for true{

      fmt.Println(a)

      a++

   }

}

if判断的几种写法

第一种

a :=Test()

if a > 10 {

   fmt.Printf("good!%d\n",a)

}

第二种

if a:=Test(); a>10{

   fmt.Printf("高级!%d\n",a)

}

    

©著作权归作者所有:来自51CTO博客作者zhaichaoqun的原创作品,如需转载,请与作者联系,否则将追究法律责任


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP