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
位操作符
- 与操作: & 
1 & 1 = 11 & 0 = 00 & 1 = 00 & 0 = 0
2. 或操作: |
1 | 1 = 11 | 0 = 10 | 1 = 10 & 0 = 0
3. 异或: ^ (相同的等于0 不同的等于1)
1 ^ 1 = 01 ^ 0 = 10 ^ 1 = 10 ^ 0 = 0
4. 左移 <<
1 << 10 = 10241 << 20 = 1M1 << 30 = 1G
5.右移 <<
1024 >> 10 = 11024 >> 1 = 5121024 >> 2 = 256
常量
- 常量使用const修饰,代表永远是只读的,不能修改 
- const 只能修饰boolean, number( int相关类型、浮点类型、 complex)和string。 
- const( a = 1b = 2c = 3) 
#iota 初始化默认为0,##默认递增const( a = 1 << iotabc)
变量
var (a int //0b string //“”c bool //falsed int = 8 // 8e string = “hello” //hello)
结构体 (struct 就是结构体定义)
struct 就是结构体定义type User struct {    name string    flag uint8}init方法和导入包
导入其他包概念,
func init(){} 初始化函数。。当init函数运行完毕。才会运行mian函数,先执行导入包的init函数。然后执行本程序的init函数
package mainimport (   _ "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)}
 
    
共同学习,写下你的评论
评论加载中...
作者其他优质文章
 
                 
             
			 
					 
					