Go开发html
GO1.5以后, 底层都是用go写的,因此1.5后都须要安装go编译器python
Go是强类型语,不一样类型相加以及赋值是不容许的,全部的整数 初始化为0,全部浮点数初始为0.0,布尔类型初始化为false
mysql
如何一个代码文件最小单位都是包sql
各包直接最好别重名,负责会覆盖bash
只能导入库文件,不能导入另一个包的可执行文件,也就是带有package main 开头的包ide
若是须要导入另一个包,那这个被导入包的开头package 能够随意写函数
若是是同一包里面的函数,直接调用便可,无需importui
需注意的是: 在运行go run 会报错, 须要go build 或者go install 后执行编译后的程序,不会报错spa
不一样包中函数,经过包名+点+函数名进行调用操作系统
在开发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位
int八、 int1六、 int3二、 int64
uint八、 uint1六、 uint3二、 uint64
int 和 uint,和操做系统平台相关
float32 和 float64浮点类型
全部整数 初始化为0,全部浮点数初始化为0.0,布尔类型初始化为false
复数类型
两种形式: complex64和complex128
var c complex64 = 5 + 10i
内置函数 complex(re, im) 构造⼀个复数
万能输出占位符: %V
字符串操做:
位操做符
与操做: &
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) }