黑顶吸蜜鹦鹉的简介,黑顶吸蜜鹦鹉的产地

百科 9℃

算数运算符

  • 算数运算符和C言语几近一样
运算符描摹实例
+相加A + B
-相减A - B
*相乘A * B
/相除B / A
%求余B % A
++自增A++
自减A–
  • 寄看点:
    • 只需不异圭表类型的言语运算数据才调进走运算
package mainimport "fmt"int main(){ 	var num1 int32 = 10	//var num2 int64 = num1 // 圭表类型不合不克不及举办赋值运算	var num2 int64 = int64(num1) // 圭表类型不合不克不及举办赋值运算	fmt.Println(num2)	var num3 int32 = 10	var num4 int64 = 20	//var res int64 = num3 + num4 // 圭表类型不合不克不及举办算数运算	var res1 int64 = int64(num3) + num4 // 圭表类型不合不克不及举办算数运算	fmt.Println(res1)	var num5 int32 = 10	var num6 int64 = 20	//var res2 bool = (num5 == num6) // 圭表类型不合不克不及举办相干运算	var res2 bool = (num5 == int32(num6)) // 圭表类型不合不克不及举办相干运算	fmt.Println(res2)	// ... ... 此外以此类推}
  • Go言语中++、–运算符不支撑前置
    • 偏向写法: ++i; --i;
  • Go言语中++ 、符案–是例解语句,不是表达式,所以必须独有一行
    • 偏向写法: a = i++; return i++;
package mainimport "fmt"func main() { 	num1 := 0	num1++	fmt.Println(num1)	//++num1 // 编译报错, Go言语中++只能后置,不克不及前置	//fmt.Println(num1)	//var num2 int = num1++ // 编译报错, num1++是语句不是表达式, 所以必须独有一行	//fmt.Println(num2)}

Go言语中字符串支撑独霸+号举办拼接

package mainimport "fmt"func main() { 	str := "abc" + "def"	//fmt.Println(str)}

相干算符

  • 相干算符和C言语一样
运算符描摹实例
==搜检两个值可否相当,假定相当前去 True 不然前去 False。释注A == B
!=搜检两个值可否不相当,言语运算假定不相当前去 True 不然前去 False 。符案A != B
>搜检右边值可否除夜于右边值,例解假定是释注前去 True 不然前去 False。A > B
<搜检右边值可否小于右边值,言语运算假定是符案前去 True 不然前去 False。A < B
>=搜检右边值可否除夜于等于右边值 ,例解假定是释注前去 True 不然前去 False 。A >= B
<=搜检右边值可否小于等于右边值 ,言语运算假定是符案前去 True 不然前去 False。A <= B
  • 寄看点:
    • 和C言语不通的例解是, Go言语中相干运算符只能前去true和false

逻辑运算符

  • 逻辑运算符和C言语一样
运算符描摹实例
&&假定单方的独霸数都是 True ,则前提 True ,不然为 False 。A && B
\|\|假定单方的独霸数有一个 True,则前提 True,不然为 False。A || B
!假定前提为 True ,则逻辑 NOT 前提 False ,不然为 True  。!A
  • 寄看点:
    • 和C言语不通的是, Go言语中相干运算符只能前去true和false
    • 逻辑非只能用于true和false

位运算符

  • 位运算符和C言语几近一样

运算符描摹实例&介入运算的两数各对应的二进位相与, 对应位只需都是1下场就为1A & B\|介入运算的两数各对应的二进位相或,对应位只需个中一个是1下场就为1A | B^介入运算的两数各对应的二进位相异或,对应位只需不分化果就是1A ^ B<<左移运算符,左移n位就是乘以2的n次方A << 2>>右移运算符,右移n位就是除以2的n次方B >> 2&^逻辑清零运算符, B对应位是1,A对应位清零,B对应位是0, A对应位保管原样A &^ B

  • 新增一个&^运算符
int main(){ 	/*	  0110      a	&^1011      b 假定b位位1,那么下场为0, 不然下场为a位对应的值	----------	  0100	*/	a1 := 6	b1 := 11	res1 := a1 &^ b1	fmt.Println("res1 = ", res1) // 4	/*	  1011      a	&^1101      b 假定b位位1,那么下场为0, 不然下场为a位对应的值	----------	  0010	*/	a2 := 11	b2 := 13	res2 := a2 &^ b2	fmt.Println("res2 = ", res2) // 2}

赋值运算符

  • 赋值运算符和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 = C ^ 2
\|=位逻辑异或赋值C |= 2 等于 C = C | 2
&^=位逻辑清零赋值C &^= 2 等于 C = C &^ 2

此外运算符

运算符描摹实例
&前去变量存储地址&a; 将给出变量的理论地址
*访谒指针指向内存*p; 访谒指针p指向内存
package mainimport "fmt"int main(){ 	var num int = 666	var p *int = &num	fmt.Println(num)	fmt.Println(*p)	num = 777	fmt.Println(num)	*p = 999	fmt.Println(num)}
  • 寄看点
    • 指针圭表类型只支撑相当运算, 不克不及做加减运算
#include <stdio.h>int main(){     int ages[3] = { 19, 23, 22};    int *arrayP = &ages[0];    printf("ages[0] = %i\n", *(arrayP + 0)); // *(arrayP + 0) == *arrayP    printf("ages[1] = %i\n", *(arrayP + 1));    printf("ages[2] = %i\n", *(arrayP + 2));    return 0;}
package mainimport "fmt"int main(){ 	var ages [3]int = [3]int{ 19, 23, 22}	var p *int = &ages[0]	//fmt.Println(&ages[0])	//fmt.Println(*p) // 19	fmt.Println(*(p + 0)) // 编译报错}

运算符优先级

  • 和C言语一样, 只需记住()优先级最高便可

到此这

算数运算符

  • 算数运算符和C言语几近一样
运算符描摹实例
+相加A + B
-相减A - B
*相乘A * B
/相除B / A
%求余B % A
++自增A++
自减A–
  • 寄看点:
    • 只需不异圭表类型的数据才调进走运算
package mainimport "fmt"int main(){ 	var num1 int32 = 10	//var num2 int64 = num1 // 圭表类型不合不克不及举办赋值运算	var num2 int64 = int64(num1) // 圭表类型不合不克不及举办赋值运算	fmt.Println(num2)	var num3 int32 = 10	var num4 int64 = 20	//var res int64 = num3 + num4 // 圭表类型不合不克不及举办算数运算	var res1 int64 = int64(num3) + num4 // 圭表类型不合不克不及举办算数运算	fmt.Println(res1)	var num5 int32 = 10	var num6 int64 = 20	//var res2 bool = (num5 == num6) // 圭表类型不合不克不及举办相干运算	var res2 bool = (num5 == int32(num6)) // 圭表类型不合不克不及举办相干运算	fmt.Println(res2)	// ... ... 此外以此类推}
  • Go言语中++、–运算符不支撑前置
    • 偏向写法: ++i; --i;
  • Go言语中++、–是语句,不是表达式,所以必须独有一行
    • 偏向写法: a = i++; return i++;
package mainimport "fmt"func main() { 	num1 := 0	num1++	fmt.Println(num1)	//++num1 // 编译报错, Go言语中++只能后置,不克不及前置	//fmt.Println(num1)	//var num2 int = num1++ // 编译报错, num1++是语句不是表达式, 所以必须独有一行	//fmt.Println(num2)}

Go言语中字符串支撑独霸+号举办拼接

package mainimport "fmt"func main() { 	str := "abc" + "def"	//fmt.Println(str)}

相干算符

  • 相干算符和C言语一样
运算符描摹实例
==搜检两个值可否相当 ,假定相当前去 True 不然前去 False。A == B
!=搜检两个值可否不相当 ,假定不相当前去 True 不然前去 False 。A != B
>搜检右边值可否除夜于右边值,假定是前去 True 不然前去 False。A > B
<搜检右边值可否小于右边值 ,假定是前去 True 不然前去 False  。A < B
>=搜检右边值可否除夜于等于右边值 ,假定是前去 True 不然前去 False。A >= B
<=搜检右边值可否小于等于右边值  ,假定是前去 True 不然前去 False 。A <= B
  • 寄看点:
    • 和C言语不通的是, Go言语中相干运算符只能前去true和false

逻辑运算符

  • 逻辑运算符和C言语一样
运算符描摹实例
&&假定单方的独霸数都是 True  ,则前提 True  ,不然为 False。A && B
\|\|假定单方的独霸数有一个 True ,则前提 True ,不然为 False 。A || B
!假定前提为 True,则逻辑 NOT 前提 False,不然为 True。!A
  • 寄看点:
    • 和C言语不通的是, Go言语中相干运算符只能前去true和false
    • 逻辑非只能用于true和false

位运算符

  • 位运算符和C言语几近一样

运算符描摹实例&介入运算的两数各对应的二进位相与, 对应位只需都是1下场就为1A & B\|介入运算的两数各对应的二进位相或,对应位只需个中一个是1下场就为1A | B^介入运算的两数各对应的二进位相异或,对应位只需不分化果就是1A ^ B<<左移运算符,左移n位就是乘以2的n次方A << 2>>右移运算符,右移n位就是除以2的n次方B >> 2&^逻辑清零运算符, B对应位是1,A对应位清零,B对应位是0, A对应位保管原样A &^ B

  • 新增一个&^运算符
int main(){ 	/*	  0110      a	&^1011      b 假定b位位1,那么下场为0, 不然下场为a位对应的值	----------	  0100	*/	a1 := 6	b1 := 11	res1 := a1 &^ b1	fmt.Println("res1 = ", res1) // 4	/*	  1011      a	&^1101      b 假定b位位1,那么下场为0, 不然下场为a位对应的值	----------	  0010	*/	a2 := 11	b2 := 13	res2 := a2 &^ b2	fmt.Println("res2 = ", res2) // 2}

赋值运算符

  • 赋值运算符和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 = C ^ 2
\|=位逻辑异或赋值C |= 2 等于 C = C | 2
&^=位逻辑清零赋值C &^= 2 等于 C = C &^ 2

此外运算符

运算符描摹实例
&前去变量存储地址&a; 将给出变量的理论地址
*访谒指针指向内存*p; 访谒指针p指向内存
package mainimport "fmt"int main(){ 	var num int = 666	var p *int = &num	fmt.Println(num)	fmt.Println(*p)	num = 777	fmt.Println(num)	*p = 999	fmt.Println(num)}
  • 寄看点
    • 指针圭表类型只支撑相当运算, 不克不及做加减运算
#include <stdio.h>int main(){     int ages[3] = { 19, 23, 22};    int *arrayP = &ages[0];    printf("ages[0] = %i\n", *(arrayP + 0)); // *(arrayP + 0) == *arrayP    printf("ages[1] = %i\n", *(arrayP + 1));    printf("ages[2] = %i\n", *(arrayP + 2));    return 0;}
package mainimport "fmt"int main(){ 	var ages [3]int = [3]int{ 19, 23, 22}	var p *int = &ages[0]	//fmt.Println(&ages[0])	//fmt.Println(*p) // 19	fmt.Println(*(p + 0)) // 编译报错}

运算符优先级

  • 和C言语一样, 只需记住()优先级最高便可

到此这Go言语