Go语言学习之旅01--变量与数据
Go语言(Golang)作为一门崇尚简洁的编程语言,主张使用20%的设计,解决80%的问题,他的全新设计思路,在如今21世纪非常值得我们去学习参考
它没有隐式数据类型转换,没有构造函数或者析构函数,没有运算符重载也没有继承、泛型、异常…但它却拥有垃圾搜集、一等函数、词法作用域以及channel等等
一.数据类型
整体类型 | 描述 |
---|---|
布尔型 | 布尔型的值只可以是常量 true 或者 false。例:var b bool = true |
数字类型 | 整型 int 和浮点型 float32、float64,Go 语言原生支持复数,其中位的运算采用补码 |
字符串类型 | 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本 |
派生类型 |
包括: (a) 指针类型(Pointer) (b) 数组类型 (c) 结构化类型(struct) (d) Channel 类型 (e) 函数类型 (f) 切片类型 (g)接口类型(interface) (h) Map 类型 |
整数类型 | 描述 |
---|---|
uint8 | 无符号 8 位整型 (0 到 255) |
uint16 | 无符号 16 位整型 (0 到 65535) |
uint32 | 无符号 32 位整型 (0 到 4294967295) |
uint64 | 无符号 64 位整型 (0 到 18446744073709551615) |
int8 | 有符号 8 位整型 (-128 到 127) |
int16 | 有符号 16 位整型 (-32768 到 32767) |
int32 | 有符号 32 位整型 (-2147483648 到 2147483647) |
int64 | 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807) |
浮点数&复数类型 | 描述 |
---|---|
float32 | IEEE-754 32位浮点型数 |
float64 | IEEE-754 64位浮点型数,浮点数默认类型 |
complex64 | 32 位实数和虚数 |
complex128 | 64 位实数和虚数,复数默认类型 |
其他数字类型 | 描述 |
---|---|
byte | uint8别名,用来存放字符 |
rune | 等价int32,存放Unicode编码 |
uint | 32 或 64 位 |
int | 与 uint 一样大小 |
uintptr | 无符号整型,用于存放一个指针 |
package main
import (
"fmt"
"math"
)
func main() {var a,b int =3,4var c int//强制类型转换,GO语言没有 隐式类型转换c=int(math.Sqrt(float64(a*a+b*b))) //强制类型 转换fmt.Println(c)
}
package mainimport "fmt"func variable(){//定义变量, 变量名在前, 类型在后var a intvar s stringfmt.Print(a,s) //打印Go语言变量的初值fmt.Print("%d,%q\n",a,s)
}func variableTypeDeduction(){//自动推断类型var s="abcd"var a,b,c =1,true,"hello,world" //定义多个变量,即使不是同一类型fmt.Println(s,a,b,c)
}func variableShorter() {a,b,c:=1,true,"hello,world" //定义变量,不使用var关键字fmt.Println(a,b,c)
}func variableInit() {//定义变量 并 赋初值var a int = 3var b,c int =4,5var s string="abc"fmt.Println(a,b,c,s)
}func main() {
variable() //定义变量
variableTypeDeduction() //自动推断类型
variableShorter() //自动推断类型 简写(函数外的包变量不可以简写)
variableInit() //定义变量并 赋初值
}
变量的声明 很像 javascript ,使用var关键字
常量很简单,使用const关键字
package main
import "fmt"
func main(){var x int=100 //声明初始化一个变量var str string="hello world"var i,j,k int=1,2,3 //声明初始化多个变量fmt.Printf("%d\t %s\t %d\t %d\t %d\n",x,str,i,j,k)var b=true //bool型fmt.Printf("%d\t %s\t",b,b)x2:=100 //等价于 var x int=100;fmt.Printf("%d\n",x2)const s2 string="hello world"const pi float32 =3.1415926fmt.Printf("%s\t %f\n",s2,pi)
}
Go语言学习之旅01--变量与数据相关推荐
- C语言学习--01 认识数据类型
C语言学习--01 认识数据类型 #include<stdio.h> int main(){//sizeof 计算类型或者变量所占空间的大小printf("%d\n", ...
- C语言-学习之路-01
C语言学习之路-01 目录 关键字 数据类型 常量 变量 声明和定义 进制 sizeof关键字 整型:int short.int.long.long long 字符型:char ASCII对照表 转义 ...
- zynq的emio和axi_【ZYNQ7000学习之旅 - 01】EMIO练习
[ZYNQ7000学习之旅 - 01]EMIO练习 [ZYNQ7000学习之旅 - 01]EMIO练习 ZYNQ7000 EMIO练习参考 背景 准备 功能 生成XSA文件 编写APP 总结 xili ...
- Go语言学习之旅--gorm(一)
Go语言学习之旅--gorm gorm概述 ORM简介 安装 gorm声明模型 模型定义 约定 gorm.Model gorm连接到数据库 快速入门 gorm的增删查改 增 gorm创建记录 用指定的 ...
- R语言通过loess去除某个变量对数据的影响
当我们想研究不同sample的某个变量A之间的差异时,往往会因为其它一些变量B对该变量的固有影响,而影响不同sample变量A的比较,这个时候需要对sample变量A进行标准化之后才能进行比较.标 ...
- linux r的数据是存在,R语言通过loess去除某个变量对数据的影响
当我们想研究不同sample的某个变量A之间的差异时,往往会因为其它一些变量B对该变量的固有影响,而影响不同sample变量A的比较,这个时候需要对sample变量A进行标准化之后才能进行比较.标准化 ...
- R语言通过loess去除某个变量对数据的影响--CNV分析
当我们想研究不同sample的某个变量A之间的差异时,往往会因为其它一些变量B对该变量的固有影响,而影响不同sample变量A的比较,这个时候需要对sample变量A进行标准化之后才能进行比较.标准化 ...
- 我的Go语言学习之旅四:各种变量的声明
同样还是直接看实例吧,比起各种赘述来要实际多了 a:=10; b:="Hello World"; fmt.Printf("%d\n",a); fmt.Print ...
- go语言复数包_go语言学习之包和变量详解
前言 本文主要介绍了关于go语言之包和变量的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.包的概念 包是go语言中不可缺少部分,在每个go源码的第一行进行定义,定义方 ...
最新文章
- 杨老师课堂_Java核心技术下之控制台模拟记事本案例...
- 8.5 特征选择-机器学习笔记-斯坦福吴恩达教授
- c++ explicit
- 机器学习算法总结--随机森林
- 洛谷 P3392 涂国旗
- 链路追踪php,easyswoole链路追踪
- (22)System Verilog按时间顺序的通知需求(事件驱动)
- hdu1426 Sudoku Killer
- 有关libeva的使用说明 - 登录和登出操作
- Centos7 Kubernetes(K8s) k8s 开发 单服务器部署 rocketmq
- 易语言webservice接口_易语言webservice接口调用助
- 写歌词的技巧和方法,写歌词的基本要求,歌词创作基本知识及注意事项,创作歌词的要点
- 二维绕任意点旋转_旋转变换(一)旋转矩阵
- NVIDIA图形处理单元(GPU)驱动安装指南
- Galaxian 小蜜蜂
- 苹果xr十大隐藏功能_今天才发现!苹果手机闹钟除了提醒起床,还有3个隐藏功能...
- 小程序停止html5音乐,微信小程序API 音乐播放控制
- fseek函数的用法(用于设定指针位置)
- 知识图到文本的生成——叁
- python命令行窗口最大化_基于python的豆瓣FM(终端命令行界面)
热门文章
- 基于全局场景背景图和关系优化的全景3D场景理解(ICCV 2021)
- ICCV 2021 | 英伟达新研究:直接通过视频就能捕获3D人体动作!
- RDKit | 基于RDKit通过SMARTS定义反应模式来生成反应产物
- Ubuntu 18.04 LTS安装配置驱动、CUDA9.1和Amber18 AmberTools18
- RDKit | 比较化合物并通过PCA可视化化学空间
- 2.爬虫的Python基础
- 对用户信息的模糊查找java_java中对SQL模糊查询通配符%的处理
- db2 某个字段排序_db2 中文排序 按拼音排序(utf-8编码)
- delphi dbgrideh 遍历每一个单元格_利用财务函数制作贷款计算器,让你了解还款的每一个细节...
- NC:你觉得你吃的是草,其实你还是吃的土(遗传发育所朱峰)