二 :go语言基础语法

基本数据类型

数据类型用来声明变量和函数

布尔类型

布尔类型默认类型是flase

package main

func main() {

	var isFlag bool
	println(isFlag)

}

数字型

整形

整形int和浮点型

uint8无符号8位,(0到255)

uint16无符号16位 (0-65535)

uint32无符号32位   (0到4294967295)

uint64无符号64位整型(0到18446744073709551615)

1int8有符号8位整型(-128到127)
2int16有符号16位整型(-32768到32767)
3int32有符号32位整型(-2147483648到2147483647)
4int64有符号64位整型(-9223372036854775808到 9223372036854775807)
package main

import "fmt"

func main() {

	var age int = 18
	var money float64 = 200.999999
	fmt.Printf("%d,%T\n\n", age, age)
	fmt.Printf("%f,%T", money, money)

}

浮点型

1. 浮点数=符号位+指数为+尾数位

2.位数数位丢失可能造成损失精度

备注:

byte类似于uint8

rune类似于int32

uintprt无符号整形,用于存放一个指针

字符和字符串

字符就是一个长长的字符连接起来的字符列

package main

import "fmt"

/*
1、定义、打印输出字符串和值
2、定义、打印输出字符和值
3、字符串拼接
4、转义字符 \
5、间隔符 \t tab
*/
func main() {
	//1、定义、打印字符串类型和值
	var str string
	str = "hello,xuexiangban"
	fmt.Println(str)

	//2、定义、打印输出字符和值
	v1 := 'A'
	v2 := 'B'
	v3 := '中'
	fmt.Printf("%T\t%T\t%T\n", v1, v2, v3) //便于查看\t间隔距离

	//3、字符串拼接  +
	fmt.Println("nihao" + "你好")

	//4、转义字符 \
	fmt.Println("nihao\"xuexiaban\"")

	//5、间隔符 \t 相当于tab键盘  \n相当于回车键
	fmt.Println("hello\t\"学相伴\t")
}

数据类型转换

在一定情况下,一个类型的值可以被转换成另一种类型的值

go语言不存在隐形转换,都是显性转换,因此所有的转换都需要显示的声明

整形不能转换为bool类型

package main

import "fmt"

func main() {
	a := 5
	b := 5.0
	c := int(b)
	d := float64(a)
	fmt.Printf("%T\n", a)
	fmt.Printf("%T\n", b)
	fmt.Printf("%T\n", c)
	fmt.Printf("%T\n", d)
}

运算符

算术运算符

假设 a=10,b=20

运算符号描述
+相加a+b=30
-相减a-b=-10
*相乘a*b=200
/相除b/a=2
%取余b%a=0
++自加a++=11
--自减a--=9
package main

import "fmt"

func main() {
	var a int = 10
	var b int = 3

	fmt.Println(a + b)
	fmt.Println(a - b)
	fmt.Println(a * b)
	fmt.Println(a % b)
	a--
	println(a * b)
	a++
	println(a * b)

}

关系运算符

运算符描述实例
==检查两个值是否相等,如果相等返回True,不等返回Falsea==b false
!=检查两个值是否不等,如果是返回True否则返回falsea!=b true
>检查两个值是否大于右边,如果是返回True否则返回falsea > b false
<检查两个值是否大于左边,如果是返回True否则返回falsea <b true
>=检查两个值是否大于等于右边,如果是返回True否则返回falsea >=b flase
<=检查两个值是否小于等于左边,如果是返回True否则返回falsea >=b ture

package main

import "fmt"

/*
1、定义两个整形变量
2、通过关系运算符 ==、!=、>、<、>=、<= 比较 并打印输出
*/
func main() {
	//1、定义两个整形变量
	var a int = 10
	var b = 20
	//2、通过关系运算符 ==、!=、>、<、>=、<= 比较 并打印输出
	fmt.Println(a == b) //false
	fmt.Println(a != b) //true
	fmt.Println(a > b)  //false
	fmt.Println(a < b)  //true
	fmt.Println(a >= b) //false
	fmt.Println(a <= b) //true

}

逻辑运算符

所有Go语言的逻辑运算符。假定A值为true,B值为false

&&我和你都为真才为真,反之为假A&&B为flase
||我和你有一个为真就可以为真,反之为假A||B为True
!如果条件为True,则逻辑NOT条件False,否则为True!(A&&B)为Ture

逻辑与&&

package main

import "fmt"

/*
1、定义两个布尔型的变量 一个为true 一个为false
2、通过if语句判断 并打印输出
*/
func main() {
	//1、定义两个布尔型的变量 一个为true 一个为false
	var a bool = true
	var b bool = false

	//2、通过if语句判断 并打印输出
	if a && b { //当ab同时为真
		fmt.Println(a) //那么我们输出为真 因为a=true
	} else {
		fmt.Println(b) //否则输出为假  因为b=false
	}
}

//输出结果:false

逻辑或||

package main

func main() {
	
	var a bool = true
	var b bool = false
	if a || b {
		println(a)
	}

}

逻辑或!

逻辑非可以理解为取反

package main

import "fmt"
/*
1、定义两个布尔型的变量 一个为true 一个为false
2、通过if语句判断 并打印输出
*/
func main() {
    //1、定义两个布尔型变量 一个为true 一个为false
   var a bool = true
   var b bool = false
    
	//2、通过if语句判断 并打印输出
   if !b {//非b  那么!b=ture
      fmt.Println(a)//那么我们输出为 a,因为a=true
   }
}

位运算符(二进制)

运算符描述实例
&都是1结果为1,否则是0(A&B)结果为12,二进制为0000 1100
|都是0结果为0,否则是1(A |B)结果为61,二进制0011 1101
^不同则为1,相同为0A^B)结果为49,二进制为0011 0001
&^位清空,a &^b,对于b上的每个数值,如果为0,则取a对应位上的数值,如果为1,则取0.(A&^B)结果为48,二进制为0011 0000
<<左移n位就是乘以2的n次方。由"<<"右边的数指定移动的位数,高位丢弃,低位补0A<<2结果为240,二进制为1111 0000
>>右移n位就是除以2的n次方。"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。A>>2结果为15,二进制为0000 1111
package main

import (
	"fmt"
)

func main() {
	//uint可以使用十进制,二进制,十六进制
	var c uint = 0
	var a uint = 60
	var b uint = 13

	c = a & b
	fmt.Printf("十进制为:%d\n二进制为:%b", c, c)
	c = a | b
	fmt.Printf("%d,二进制为:%b", c, c)
	c = a ^ b
	fmt.Printf("%d,二进制为:%b", c, c)

	//逻辑运算符&& 我和你true  ||我或你

	c = a << 2
	fmt.Printf("%d,二进制为:%b\n", c, c)
	c = a << 2
	fmt.Printf("%d,555二进制为:%b", c, c)
}

赋值运算符

运算符描述实例
=简单的赋值运算符,将一个表达式的值赋给一个左值C =A+B将A+B表达式结果赋值给C
+=相加后再赋值C +=A等于C=C+A
-=相减后再赋值C -=A等于C=C-A
*=相乘后再赋值C *=A等于C=C *A
/=相除后再赋值C/=A等于C=C/ A
%=求余后再赋值C%=A等于C=C%A
<<=左移后赋值C<<=2等于C=C<<2
>>=右移后赋值C>>=2等于C=c>>2
&=按位与后赋值C&=2等于C=C&2
^=按位异或后赋值C=2等于C=C2
!=按位或后赋值C|=2等于C=C|=2
package main

import "fmt"

func main() {

	var a = 21
	var b int
	b = a

	b += a
	fmt.Printf("打印的值:%d", b)
	b -= a
	fmt.Printf("您的值为:%d", b)

}

其他运算符

package main

import (
	"fmt"
)

func main() {
	var a int
	var b float64
	fmt.Printf("请输入两个整数:")
	fmt.Scan(&a, &b) //利用键盘来录入这两个变量 scanln ,传参不要忘记取地址符&
	fmt.Printf("a的值为:%d\nb的值为%f", a, b)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值