一、Golang的一些基础知识和语法学习笔记


Golang的一些基础知识和语法

Golang语言原始编译运行

  1. 编译 :go build 文件名.go;
  2. 运行 :.\文件名.exe;
  3. 快捷运行 :go run 文件名.go;

变量

变量:在程序运行过程中其值能够改变的量 成为变量 变量存在内存中

func main(){
    //变量定义格式
    var 变量名 数据类型//声明
    var 变量名 数据类型 =//定义
    变量名 :=//自动推导类型
}
***自动推导类型 :=之间没有空格

注意:变量的类型不同不能进行计算 需要使用类型转换

格式化输入输出

func main(){
    //输出
    fmt.Println()//输出数据 自动换行
    fmt.Print()//输出数据 不带换行
    fmt.Printf()//类似C语言中输出,格式化输出数据
    //%d整形 %f浮点型 %t布尔类型 %s字符串类型 %c字符类型 %p内存地址
    //输入
    fmt.Scan(&变量)//输入数据 &取地址符号
    fmt.Scanf()//格式化输入数据
}

标识符命名规则

1、只能以字母或下划线开头
2、只能使用字母 数字 下划线
3、区分大小写
4、不能使用系统关键字
5、见名知义

格式化类型

%c 打印字符类型数据
%d 打印整型类型数据
%f 打印浮点型数据 fmt.printf("%f") 默认保留六位小数%.2f 保留两位小数 对第三位四舍五入
%s 打印字符串类型
%p 打印变量地址(指针类型)
%t 打印布尔类型数据
%T 打印数据类型 a:=3.14 float64 a:=10 int a:='a’int32

%o 打印八进制整型数据
%x %X 打印十六进制整型数据 a-f A-F
%% 打印一个%

转义字符

‘\n’ 表示换行
‘\’ 表示\
‘\0’ 表示字符串结束标志 ASCII值为0

常量

格式 const 常量名 数据类型=值 一般常量大写字母
常量的值在程序运行过程中其值不能发生改变
常在在内存中的数据区进行存储 变量是在内存中的栈区存储
系统为每一个应用程序分配了1M的内存空间存储变量和函数的信息

iota 枚举

枚举一般用作于程序的流程控制

func main(){
    const(
      a=iota //0
      b,c=iota,iota//1
      d=20//2
    )
}

运算符

1、算数运算符
加【+】 减【-】乘【*】 除【/】 两个相同类型的数据相除是得到的结果类型也相同 除数不能为0
取余【%】 取余只能对整型操作 除数不能为0
自增【++】自减【–】 go语言中只有后自增后自减 不能参与表达式计算(二义性??)

2、类型转换
不同类型转换 如果讲浮点型转成整型 会丢失精度 只会保留整数部分 不会四舍五入
同一类型转换 建议将低类型转成高类型 防止数据丢失 【高位溢出】
格式: 数据类型(变量) 数据类型(表达式)

3、赋值运算符:
加等于【+=】 减等于【-=】乘等于【*=】除等于【/=】取余等于【%=】

4、比较运算符:
【>】【<】【>=】【<=】【==】【!=】
比较运算符返回值为bool类型 true false

5、逻辑运算符:
非【!】非真为假 非假为真
或【||】同假为假 其余为真
与【&&】同真为真 其余为假

6、其他运算符:
取地址【&】 对变量去地址是指针类型
取值运【*】 对指针变量取值

运算符优先级

//括号 () 结构体成员. 数组下标[]

//单目运算符
//逻辑非! 取地址& 取值* 自增++ 自减–

//双目运算符
//乘除 * / %
//加减 + -
//关系 == != > >= < <=
//逻辑 || && 注意 逻辑与高于逻辑或
//赋值 = += -= *= /= %=

分支结构

//if语法结构
func main(){
    if 条件判断 {
        代码语句
    }else if 条件判断{
        代码语句
    }else if 条件判断{
        代码语句
    }else if 条件判断{
        代码语句
    }....else{
        代码语句
    }
    
}

//switch语法结构
func main(){
    switch 变量或表达式{
        case1 : 要执行的代码
        case2 : 要执行的代码
        case3 : 要执行的代码
        ...
        default : 要执行的代码 
    }    
}

循环结构

func main(){
    //语法结构
    for 初始变量;判断条件;修正变量{
        要执行的代码(循环体)
    }
    
    //死循环
    for{
        要执行的代码(循环体)
    }
}

break语句:结束当前循环

continue语句:结束本轮循环,然后进行循环条件判断,如果成立进行然后进入下一轮循环,否则退出循环

函数

//基本语法
func 函数名(参数){
    函数体
}
//调用
函数名()

//函数不定参数列表
func 函数名(num int,arge...int) (int,int){//有返回值
    //arge...int为函数不定参数列表
    //其实是一个集合
    //arge[0]可以打印出
    return
}
for _,v := range arge{//返回编号和值
    //rang可以遍历集合
    //_下划线为匿名变量
}

//函数返回值
func 函数名(num int,arge...int) (int,int){}
func 函数名(num int,arge...int) int{}

//关键字defer用于延迟函数执行
//如果一个函数中有多个defer语句,他们会以LIFO(后进先出的顺序执行)
defer fmt.Println("aaa")
defer fmt.Println("bbb")
defer fmt.Println("ccc")//执行结果:ccc bbb aaa 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值