一、区别于其他语言的特点:
清晰并且简洁、并行(线和 goroutines)、Channel、快速、安全、标准格式化、
类型后置(var a int)、UTF-8、开源、开心
Erlang[7] 与 Go 在部分功能上类似。Erlang 和 Go 之间主要的区别是 Erlang 是函 数式语言,而 Go 是命令式的。Erlang 运行在虚拟机上,而 Go 是编译的。Go 用 起来感觉更接近 Unix
二、Hello World
package main
imort "fmt" // 实现格式化的I/O
/*Print something*/
func main(){
fmt.Printf("Hello,word\n");
}
注:packagemain必须首先出现,紧跟着是import。在Go中,package总是首先出现, 然后是 import,然后是其他所有内容。当 Go 程序在执行的时候,首先调用的函 数是 main.main(),这是从 C 中继承而来。
编译和运行代码
%go build helloworld.go
会生成一个叫helloworld 的可执行文件
%./helloword
Hello,world
三、变量 ,要先声明后赋值
var a int 声明
a =15 赋值
等同于
a :=15 直接声明并赋值
多个变量:
var (
x int
b bool
)
或者如果都是 整型,可以声明
var a,b int
平行赋值 a, b := 20, 16
注: 如果你希望将两个(或更多)语句放在一 行书写,它们必须用分号 (’;’) 分隔。一般情况下,你不需要分号
一个特殊的变量名是 _(下划线)。任何赋给它的值都被丢弃。在这个例子 中,将 35 赋值给 b,同时丢弃 34。
_, b := 34, 35
Go 的编译器对声明却未使用的变量在报错
四、变量类型
1、布尔类型 true 和 false
2、数字类型
int ,你可以使用 int32 或者 uint32。完整的整数类型列表 (符号和无符号)是 int8,int16,int32,int64 和 byte,uint8,uint16,uint32, uint64。 byte 是 uint8 的别名。浮点类型的值有 float32 和 float64
注:赋值可以用八进制、十六进制或科学计数法: 077,0xFF,1e3 或者 6.022e23 这 些都是合法的。
3、常量
const x=4
const (
a = 0 ← Is an int now b string = "0"
)
4、字符串
s := "Hello World!" 必须是双引号
或者 var s string = "hello"
注: 一旦给变量赋值,字符串就不能修改了
多行字符串:
s := "Starting part" + "Ending part"
会被转换为:
s := "Starting part";
+ "Ending part";
这是错误的语法,应当这样写:
s := "Starting part" + "Ending part"
另一种方式是使用反引号 ` 作为原始字符 串符号:
s := `Starting part Ending part`
另:
rune
Rune 是 int32 的别名。用 UTF-8 进行编码。这个类型在什么时候使用呢?例如需 要遍历字符串中的字符。可以循环每个字节(仅在使用 US ASCII 编码字符串时 与字符等价,而它们在 Go 中不存在!)。因此为了获得实际的字符,需要使用 rune 类型。
5、复数
它的变量类型是 complex128 (64 位虚数部分)。如果需要小 一些的,还有 complex64 – 32 位的虚数部分。复数写为 re + imi,re 是实数部分, im 是虚数部分,而 i 是标记 ’i’ (√−1)。使用复数的一个例子:
var c complex64 = 5+5i;fmt.Printf("Value is: %v", c) 将会打印:(5+5i)
6、错误
Go 有为了错误而 存在的内建类型,叫做 error。 var a error 定义了 a 为一个 error,a 的值是 nil。
五、运算符和内建函数
+ - * / 和% 会像你期望的那样工作,& | ^ 和&^ 分别表示位运算符按位与, 按 位或,按位异或和位清除。 && 和 || 运算符是逻辑与和逻辑 或。表格中没有列 出的是逻辑非:!。
虽然 Go 不支持运算符重载(或者方法重载),而一些内建运算符却支持重载。
Go 保留字:

转载于:https://www.cnblogs.com/wjq310/p/6545451.html

Go 语言基础(一)相关推荐

  1. 【python语言基础】疑难点整理2

    [python语言基础]疑难点整理1 第五章 在python语法中,循环体中的语句没有做限制,因此,可以是任何合法语句,当然也可以是循环语句.这样就形成了循环语句的嵌套. while循环语句和for循 ...

  2. r语言 断轴 画图_R语言基础画图/绘图/作图

    R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...

  3. fig r函数_R语言基础绘图函数散点图~跟着Nature Communications学画图~Figure1

    今天继续 跟着Nature Communications学画图系列第二篇.学习R语言基础绘图函数画散点图. 对应的 Nature Communications 的论文是 Fecal pollution ...

  4. 学单片机需要多少C语言基础,C语言单片机编程教程

    很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...

  5. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  6. c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析

    本文约1600字,主要讲了C语言基础之数组.数组又可分为数值数组.字符数组.指针数组.结构数组等各种类别.本文主要讲了数组的基础概念,一维数组的定义和引用. 带你进入C语言的世界,入门C语言,后边将持 ...

  7. matlab语言实验二,实验二 MATLAB语言基础

    实验二 MATLAB 语言基础 一.实验目的 基本掌握 MATLAB 向量.矩阵.数组的生成及其基本运算(区分数组运算和矩阵运算).常用的数学函数.了解字符串的操作. 二.实验内容 (1) 向量的生成 ...

  8. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  9. 实验四 数据库SQL语言基础编程

    -- 实验四 数据库SQL语言基础编程 -- 实验目的: --  掌握数据库查询语句的编写方法 --  掌握利用查询语言完成基本查询 --  掌握利用SQL语句完成数据的添加.删除.修改操作 -- 实 ...

  10. 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)

    来源:大数据 本文约7100字,建议阅读15分钟. 本文介绍了utils包在R语言基础的用途. [ 导读 ]无论数据分析的目的是什么,将数据导入R中的过程都是不可或缺的.毕竟巧妇难为无米之炊.util ...

最新文章

  1. julia有 pytorch包吗_有了Julia语言,深度学习框架从此不需要计算图
  2. 关于String数组的用法
  3. 日记-致我那易逝的时光
  4. Java - 死锁 Dead Lock 定位分析
  5. Sql获取表信息(包括结构及字段说明)
  6. Java数组的基本知识点
  7. [上下界网络流][二分] Bzoj P2406 矩阵
  8. 【渝粤教育】电大中专会计电算化 (2)作业 题库
  9. Canvas动画 位图缓存提高效率和对应的内存问题
  10. 【2019牛客暑期多校训练营(第一场) - A】Equivalent Prefixes(单调栈,tricks)
  11. C++:29 --- C++继承关系下的内存布局(下)
  12. 大动作!今日头条、西瓜视频并入抖音,字节梁汝波正式接任CEO
  13. 记录 PHP 缓存区ob
  14. 微信多开软件苹果版_微信多开教程—Mac版amp;Win版
  15. OA系统选型的那些事儿
  16. 苹果开发者账号双重验证忘记密保终极解决办法
  17. 什么是匈牙利命名法?有什么规则?
  18. 大数据之数据仓库建设(三)
  19. Android系统Crash/ANR类型弹框
  20. ”全球软件测试实践“问卷调查报告

热门文章

  1. linux 切图软件下载,学会23个linux常用命令,不做前端切图仔~
  2. junit链接mysql_java – 使用JUnit进行简单的JDBC连接测试
  3. 大数据最核心的关键技术——32个算法,记得收藏!
  4. Mysql 会导致锁表的语法
  5. Scanf连续调用多次并且存在%c的问题
  6. Spark Metrics配置详解
  7. javascript 模板引擎基本原理
  8. 聊聊高并发(二十五)解析java.util.concurrent各个组件(七) 理解Semaphore
  9. Elasticsearch聚合深入详解——对比Mysql实现
  10. 深度学习表征的不合理有效性——从头开始构建图像搜索服务(二)