GO基本类型
1.布尔(bool)
长度:1字节
取值范围:true,false
注意事项:不可用数字代表true或false
2.整型(int/uint)
根据平台 肯能为32位或64位
3. 8位整型:int8/uint8
长度:1字节
取值范围:-128~127/0~255
4.字节型 :byte(uint8别名)
5. 16位整型:int16/uint16
长度:2字节
取值范围:-32768~32767/0~65535
6. 32位整型:int32(rune)/uint32
长度:4字节
取值范围:-2^32/2~2^32/2-1/0~2^32-1
7. 64位整型:int64/uint64
长度:8字节
取值范围:-2^64/2~2^64/2-1/0~2^64-1
8. 浮点型:float32/float64
长度:4/8 字节
小数位:精确到7/15小数位
9. 复数:complex64/complex128
长度:8/16字节
10. 足够保存指针的32位或64位整数型:uintptr
其它值类型
array,struct,string
引用类型
slice,map,chan
接口类型
interface
函数类型
func

类型的零值
零值并不等于空值,而是当变量被声明为某种类型后的默认值
通常情况下值类型的默认值为0,bool为false,string为空字符串
类型别名
type(
byte int8
文本 string
)
var b 文本

单个变量的声明与赋值
变量声明格式:var 变量名称 变量类型
变量赋值格式:变量名称=表达式
声明的同时赋值:var 变量名称 变量类型=表达式
var a int
a=123
var b int=231
//以上的格式可省略变量类型,由系统推断
var c=321
//变量的声明与赋值最简写法
d:=456

多个变量的声明和赋值
全局变量的声明可使用var()的方式简写
全局变量的声明不可省略 var,但可以使用并行方式
所有的变量都可以使用类型推断
局部变量不可以使用var()方式简写,只能使用并行方式
var (
//常规方式
a="ajax"
//使用并行方式及推断
s,b=1,2
)

函数体内

 func main(){var a,b,c,d int =1,2,3,4var a,b,c,d  =1,2,3,4a,b,c,d:  =1,2,3,4}
func main(){var a,_,c,d int =1,2,3,4var a,b,c,d  =1,2,3,4a,b,c,d:  =1,2,3,4
}

变量的类型转换
go中不存在隐式转换,所有类型转换必须显式声明
转换只能发生在2种相互兼容的类型之间
类型转换格式
<ValueA>[:]=<TypeOfValueA>(<ValueB>)
var a float32=1.1
b:=int(a)
//以下类型转换 无法通过编译
var c bool=true //只有true,false 逻辑类型
d:=int(c)

常量的定义

常量的值在编译时就已经确定
常量的定义格式与变量基本相同
等号右侧必须是常量或者常量表达式
常量表达式中的函数必须是内置的函数

常量的初始化规则与枚举
在定义常量组(注意必须是常量组)时,如果不提供初始值,则表示使用上行的表达式
使用相同的表达式不代表具有相同的值
iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
通过初始化规则与iotal可以达到枚举效果
每遇到一个const关键字,iota就会重置为0

package main
import  (
"fmt"
)
const a int =1
const b='A'
//const bb //报错
const(text="123"length=len(text)num
)
const(c,d=2,3e,f     //使用上行表达式 必须个数一样
)
//同时定义多个常量
const i,j,k=1,"2","3"func main() {// fmt.Println(bb);fmt.Println(length)     //3fmt.Println(num)        //3fmt.Println(c);    //2fmt.Println(d);         //3fmt.Println(e);         //2fmt.Println(f);    //3
}

package main
import  (
"fmt"
)
const(A="A"  BC=iotaDE=iotaf='A'  //内部使用 _f
)
const(G=iota
)
func main() {fmt.Println(A)  //Afmt.Println(B)  //Afmt.Println(C)  //2fmt.Println(D)  //3fmt.Println(E)  //4fmt.Println(f)  //65fmt.Println(G)  //0
}

运算符
Go中的运算符都是从左至右结合
优先级(高->低)
^    !  (一元运算符)
*    /   %   <<   >>   &   &^
+   -    |   ^   (二元运算符)
==    !=   <    <=    >=    >
<-    (专用于channel)
&&
||

func main() {fmt.Println(^2)  //-3  此时为一元运算符fmt.Println(1^2)  // 3  此时为二元运算符fmt.Println(!true); //falsefmt.Println(1<<10);  //1024fmt.Println(1>>10);//0

}

package main
import  (
"fmt"
)
/**
5= 0101
11=1011
5&11=0001=1 (均为1得1)
5|11=1111=15 (有一个为1 得1)
5^11=1110=14 (有且只有1个为1 才成立)
5&^11=0100=4 (第二个数为1,把第一个数相应位置改为0,结果为改过的第一个数的值)
4&^8=0100=4
0100
1000
**/func main() {fmt.Println(5&11)  fmt.Println(5|11)    fmt.Println(5^11)fmt.Println(5&^11)fmt.Println(4&^8)
}

常量的iota与<<<实现计算机存储单位的枚举

package main
import  (
"fmt"
)
const(B float64=1<<(iota*10)KBMBGB
)func main() {fmt.Println(B)   //1fmt.Println(KB)  //1024fmt.Println(MB)  //1.048576e+06fmt.Println(GB)  //1.073741824e+09
}

指针
GO虽然保留了指针,但与其它编程语言不同的是,Go中不支持指针运算以及 "->" 运算符,
而直接采用"." 选择符来操作指针目标对象的成员
操作符 "&" 取变量地址 ,使用"*" 通过指针间接访问目标对象
默认值为nil而非NULL
-----------------

package main
import (
"fmt"
)
func main() {
a:=1
var p *int=&a
fmt.Println(p) //0xc082002228
fmt.Println(*p) //1
}

转载于:https://www.cnblogs.com/HKUI/p/4782551.html

go基本数据类型与运算符相关推荐

  1. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...

    今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  2. 当c语言表达式中同时有字符 整数,c语言第2章数据类型、运算符与表达式a.ppt

    c语言第2章数据类型.运算符与表达式a C语言程序设计;本章主要学习任务;2.1 C的数据类型;注意:C语言中的数据有变量与常量,它们分别属于上述这些类型.;2.2 常量与变量;不是C语句,不必在行末 ...

  3. Python基础(二)--数据类型,运算符与流程控制

    目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类 ...

  4. java的注释、关键字、标识符、变量常量、数据类型、运算符、流程控制等

    java的注释.关键字.标识符.变量常量.                             数据类型.运算符.流程控制等 1. java概述 1.1 java的技术体系 Java SE:是Ja ...

  5. C语言(第二章):数据类型、运算符、表达式

    .:.:第二章:数据类型.运算符.表达式:.:. 第二章: 数据类型.运算符.表达式 C语言的数据类型 在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用.对变量的说明可以 ...

  6. VB讲课笔记04:数据类型、运算符与表达式、常用函数

    VB讲课笔记04:数据类型.运算符与表达式.常用函数 一.标识符 VB6.0中,标识符分两类,一类是系统内部定义的标识符, 一类是用户定义的标识符. 系统内部定义的标识符又称关键字或保留字,主要用于标 ...

  7. 对数据类型而言运算符无效。运算符为 add,类型为 text。

    最近在开发一个文件管理系统的时候,遇到另外一个问题:本来偶在本地的数据库是SQL2008,有一个字段SharedUserId 是nvarchar(max)类型,偶在查询SQL语句中用了...WHERE ...

  8. c语言字符型运算符,C语言试题:数据类型、运算符与表达式

    <C语言试题:数据类型.运算符与表达式>由会员分享,可在线阅读,更多相关<C语言试题:数据类型.运算符与表达式(4页珍藏版)>请在人人文库网上搜索. 1.3 数据类型.运算符与 ...

  9. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  10. c语言实验数据类型体会,实验1-C语言开发环境使用和数据类型、运算符、表达式-实验总结与体会...

    一,实验总结 本此实验共9组练习,其中前5组为练习c程序结构与书写规范,3组为补全程序,最后一组为自主编写. Part 1 前五组中没有出现什么问题,但在学习指导P116第一题中: #include ...

最新文章

  1. 零基础学习Python需要注意的几个点,Python培训机构排名
  2. 你还在百度这些代码吗?
  3. settimeout( )是全局函数吗_JS函数的执行
  4. .NET Core ResponseCache【缓存篇(一)】
  5. Gradle:我们需要另一个构建工具吗?
  6. linux下Epoll实现简单的C/S通信
  7. 并行DA实验c语言程序,哈工大C语言DA实验报告.doc
  8. arcgis创建剖面线execl文件
  9. 去哪儿-20-detail-animation
  10. SQL SERVER 新增表、新增字段、修改字段 判断表是否存在
  11. PostgreSQL用户角色和权限管理
  12. POJ 3253-Fence Repair(堆)
  13. Python中lambda表达式的语法与应用
  14. Volumetric 3D Mapping in Real-Time on a CPU
  15. 指针数组 | 数组指针
  16. 最全中文停用词表整理(1893个)
  17. dnf外挂java代码,dnf脚本制作教程共22课java
  18. js怎样向html中添加内容,使用js向网页中写入html内容
  19. Centos7 无线网络设置
  20. 苹果手机微信消息备份

热门文章

  1. 纯干货:Linux抓包命令集锦(tcpdump)
  2. js实现表单checkbox的单选,全选
  3. 170329、用 Maven 部署 war 包到远程 Tomcat 服务器
  4. SSM框架搭建+easyui增删改查
  5. 娱乐大咖项目2- 总结
  6. javaSE基础——常见的dos命令即其他
  7. rabbitmq 学习-2-安装
  8. STM32之SPI主机例程
  9. 贝壳找房技术总监肖鹏:高速成长下的技术团队怎么带?
  10. 陆奇最新分享:数字化进程加速,创新者如何把握机会?