- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
布尔类型bool
长度:1字节
取值:布尔类型的取值只能是true或者false,不能用数字来表示
整型
通用整型 int / uint(有符号 / 无符号,下面也类似)
长度:根据运行平台可能为32(4个字节)位或者64位(8个字节)
8位整型 int8 / uint8
长度:1个字节
取值范围:-128~127 / 0~255
16位整型 int16 / uint16
长度:2个字节
取值范围:-32768~32767 / 0~65535
32位整型 int32 / uint32
长度:4个字节
取值范围:− 2 32 2 -\frac{2^{32}}{2}−2232 ~ 2 32 2 − 1 \frac{2^{32}}{2}-12232−1 / 0~2 32 − 1 2^{32}-1232−1
64位整型 int64 / uint64
长度:8个字节
取值范围:− 2 64 2 -\frac{2^{64}}{2}−2264 ~ 2 64 2 − 1 \frac{2^{64}}{2}-12264−1 / 0~2 64 − 1 2^{64}-1264−1
浮点型
32位浮点型float32
长度:4个字节
小数点位数:精确到7小数位
64位浮点型float64
长度:8个字节
小数点位数:精确到15小数位
复数
32位实数和虚数complex64
64位实数和虚数complex128
足够保存指针的32位或64位整型:uniptr
其它值类型
array、 struct、string
引用类型
slice、map、chan
接口类型:interface
函数类型:func
类型别名
当在使用某个类型时,可以给它起另外一个名字,然后就可以在代码中使用新的名字了。比如type MONEY int
,之后就可以使用MONEY
来操作int
型的数据了。
type(
整数 int32
小数 float64
)
var a 整数 = 1
值得注意的是,在Go中有两个类型byte
和rune
,它们分别是uint8
和uint32
的别名。其中,byte
是一个字节的长度,主要用来处理ascii字符;而rune
是4个字节长度,可以用来处理unicode或者utf-8字符
类型零值
零值并非空值,而是当变量被声明为某种类型后的默认值。通常情况下数值类型的默认值为0,bool类型的默认值为false,string类型的默认值为空字符串
Go中的运算符都是从左往右结合的,一元运算符只可以用作一个值的操作(作为后缀),而二元运算符则可以和两个值或者操作数结合(作为中缀)。优先级越高的运算符可以优先执行,下面从上到下表示各个运算符优先级从高到低:
优先级 | 运算符 | 备注 |
---|---|---|
7 | ^ ! | 一元运算符,^按位取反,!逻辑非 |
6 | * / % << >> & &^ | *乘,/除,%取余,<<位左移,>>位右移,&按位与,&^按位清零 |
5 | + - | ^ | +加,-减,|按位或,^异或 |
4 | == != < <= >= > | ==等于,!=不等,<小于,<=小于等于,>=大于等于,>大于 |
3 | <- | 用于channel |
2 | && | 逻辑与 |
1 | || | 逻辑或 |
当然,可以通过括号来提升某个表达式的运算优先级
!
!true -> false
!false -> true
逻辑或||
true || true -> true
true || false -> true
false || true -> true
false || false -> false
逻辑与&&
true || true -> true
true || false -> false
false || true -> false
false || false -> false
值得注意的是,在 Go 语言中,&& 和 || 具有短路性质,当运算符左边表达式的值已经能够决定整个表达式的值的时候(&& 左边的值为 false,|| 左边的值为 true),运算符右边的表达式将不会被执行。利用这个性质,如果你有多个条件判断,应当将计算过程较为复杂的表达式放在运算符的右侧以减少不必要的运算
位运算 (只能用于整型)
按位与& :将对应位上的值进行与运算,即两个都为1时结果才为1,否则为0
按位或|:将对应位上的值进行或运算,即只要有一个为1时结果为1,两个都为0时结果为0
按位异或^:对应位上的值相同,结果位0;否则结果为1
需要注意的时,^
作为一元运算符时,功能是按位取反,包括符号位在内(注意有符号数和无符号数的区别)。举个例子:
func main(){
var i uint8 = 20
fmt.Println(^i,^20) // 输出结果是:235 -21
}
上面的例子中,一个是有符号的数一个是无符号的数,第一个i为无符号的数,^i 即^0001 0100 = 1110 1011 ,则结果为235,是无符号的数;第二个20默认是有符号的数,结果也为有符号数,为其负数补码(一个有符号位的^操作为 这个数+1的相反数)
&^
:对运算符左边的数的每一位根据运算符右边的数对应位上的值进行操作,如果右边数对应位上为1,则左边数对应位为0,如果右边数对应位上为0,则左边对应位的数不变4 &^ 5 -> 101 &^ 100 = 001
左移<<
右移>>
:用法:num << n
或num >> n
向左或向右移动n位,空白部分用0填充
算术运算符
常见的用于整型和浮点型数的运算符有+
,-
,*
,/
,其中/
对于整数运算,其结果还是整数
取余运算%
只能作用于整数
可以将语句a = a + b
简写为a += b
,同样的写法也适用于-=
,*=
,/=
,%=
在Go中,自增自减语句++
,--
只能作为语句,不能作为表达式,比如n = i++
这样的写法是无效的
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
介绍篇 什么是MiniApis? MiniApis的特点和优势 MiniApis的应用场景 环境搭建 系统要求 安装MiniApis 配置开发环境 基础概念 MiniApis架构概述
我正在从“JavaScript 圣经”一书中学习 javascript,但我遇到了一些困难。我试图理解这段代码: function checkIt(evt) { evt = (evt) ? e
package com.fastone.www.javademo.stringintern; /** * * String.intern()是一个Native方法, * 它的作用是:如果字
您会推荐哪些资源来学习 AppleScript。我使用具有 Objective-C 背景的传统 C/C++。 我也在寻找有关如何更好地开发和从脚本编辑器获取更快文档的技巧。示例提示是“查找要编写脚本的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,以便堆栈溢出为 on-topic。 6年前关闭。 Improve this
我是塞内加尔的阿里。我今年60岁(也许这是我真正的问题-笑脸!!!)。 我正在学习Flutter和Dart。今天,我想使用给定数据模型的列表(它的名称是Mortalite,请参见下面的代码)。 我尝试
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
学习 Cappuccino 的最佳来源是什么?我从事“传统”网络开发,但我对这个新框架非常感兴趣。请注意,我对 Objective-C 毫无了解。 最佳答案 如上所述,该网站是一个好地方,但还有一些其
我正在学习如何使用 hashMap,有人可以检查我编写的这段代码并告诉我它是否正确吗?这个想法是有一个在公司工作的员工列表,我想从 hashMap 添加和删除员工。 public class Staf
我正在尝试将 jQuery 与 CoffeScript 一起使用。我按照博客中的说明操作,指示使用 $ -> 或 jQuery -> 而不是 .ready() 。我玩了一下代码,但我似乎无法理解我出错
还在学习,还有很多问题,所以这里有一些。我正在进行 javascript -> PHP 转换,并希望确保这些做法是正确的。是$dailyparams->$calories = $calories;一条
我目前正在学习 SQL,以便从我们的 Magento 数据库制作一个简单的 RFM 报告,我目前可以通过导出两个查询并将它们粘贴到 Excel 模板中来完成此操作,我想摆脱 Excel 模板。 我认为
我知道我很可能会因为这个问题而受到抨击,但没有人问,我求助于你。这是否是一个正确的 javascript > php 转换 - 在我开始不良做法之前,我想知道这是否是解决此问题的正确方法。 JavaS
除了 Ruby-Doc 之外,哪些来源最适合获取一些示例和教程,尤其是关于 Ruby 中的 Tk/Tile?我发现自己更正常了 http://www.tutorialspoint.com/ruby/r
我只在第一次收到警告。这正常吗? >>> cv=LassoCV(cv=10).fit(x,y) C:\Python27\lib\site-packages\scikit_learn-0.14.1-py
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我是一名优秀的程序员,十分优秀!