a、为何学习GO语言?

从个人角度来看,第一是被GO语言传说中的那样超高的开发效率和运行效率所吸引;第二是GO语言在语言层面支持并发,这在现在的编程业务中是很方便的;第三是由于前两点,我觉得以后GO会火起来;最后一点,做技术嘛,跟着微软或者谷歌总会是有肉吃的^_^!

b、第一个GO程序

根据国际惯例,学习一门语言,总会以一个Hello World开始,同样,看第一个GO程序来感受一下GO的世界

package main

import "fmt"

func main(){
fmt.Println("Hello World!")
}

package---包声明,表示这段代码属于哪个包

import---导入包,导入fmt是因为需要使用fmt包中的Println函数//不能导入代码中没有用到的包,编译会报错

/******************开始语言*********************/

一、顺序编程

1、变量

a、声明:

  引入关键字 var , 类型信息在变量名之后

var a int
var v2 string  
var v3 [10]int  //数组  
/*多个变量一起声明*/
var (
  v1 int
  v2 string
)

b、初始化

var v1 int = 10
var v2 = 10 //可以自动推导类型
v3 := 10 //v3不能是已经声明过的变量  

c、赋值

var v4 int
v4 = 10
/*多重赋值*/
a , b = 2 , 3
i , j = j , i

d、匿名变量

  Go语言支持多返回值和匿名变量,由于函数可以多返回值,在接收的时候可以选择性的接收

func getName()(firstName , lastName , nickName){
return "zhangsan" , "lisi" , "wuhaha"
} _ , _ , nickName := getName()

2、常量

a、字面常量-----程序中硬编码的常量(无类型)

  -12
  3.14159265358979325846//浮点型的常量
  3.2 + 12i //复数型的常量
  true //布尔型的常量
  "foo" //字符串型的常量

b、常量定义

关键字 const

const Pi float64 = 3.14159265358979323846

const (
  size int64 = 1024
  eof = -1
)
const mask = 1 << 3 //编译期运算的常量表达式

常量赋值是一个编译期行为,所以右值不可以是任何需要运行期才能得出结果的表达式

如下错误栗子:

const errooooor = os.GetEnv("HOME")//os.GetEnv()要在运行期才能得出结果

c、预定义常量

true , false , iota

iota---可被编译器修改的常量,每const出现一次,iota被重置为0,在下一个const出现之前,没出现一次iota,iota代表的数字+1 

const (
c0 = iota //co == 0
c1 = iota //c1 == 1
c2 = iota //c2 == 2
) const (
c0 = 1 << iota //c0 == 1
c1 = 1 << iota //c1 == 2
c2 = 1 << iota //c2 == 4
)

d、枚举---定义一组常量

const (
  Sunday = iota
  Monday
  Tuesday
  Wednesday
  Thursday
  Friday
  Saturday
  numberOfDays // 这个常量没有导出
)

同Go语言的其他符号( symbol)一样,以大写字母开头的常量在包外可见。以上例子中numberOfDays为包内私有,其他符号则可被其他包访问。  

  

  

  

  

  

【GO】GO语言学习笔记一的更多相关文章

  1. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  2. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  3. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  4. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  5. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  6. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  7. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  8. Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...

  9. Go语言学习笔记十: 结构体

    Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

  10. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

随机推荐

  1. Ionic + AngularJS

    Ionic Framework Ionic framework is the youngest in our top 5 stack, as the alpha was released in lat ...

  2. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  3. chrome 'adobe flash player 已过期'解决方法

    http://labs.adobe.com/downloads/flashplayer.html下载 WindowsDownload Flash Player for Opera and Chromi ...

  4. js获取cookie 和 模仿php的&_GET方法

    //获取get参数 function _get(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)( ...

  5. iOS9 适配(杂七杂八)

    1.iOS9 以后,table cell 在旋转的时候会自动调整视图内容的布局,设置以下的属性,课禁止该行为. if (runTimeOSVersion >= 9.0f) { _listTabl ...

  6. 无法安装MVC3,错误提示:安装KB2483190(vs10-kb2483190)出错

    原文:无法安装MVC3,错误提示:安装KB2483190(vs10-kb2483190)出错 无法安装MVC3,错误提示:安装KB2483190(vs10-kb2483190)出错. 安装指导:&qu ...

  7. Stripe开发笔记之-ISO Currency Code(ISO 4217)

    参考:维基百科和ISO官网 ISO Currency Code:国际标准组织通用货币代号,国际标准化组织(英语:International Organization for Standardizati ...

  8. LeetCode Minimum Moves to Equal Array Elements

    原题链接在这里:https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ 题目: Given a non-empty i ...

  9. 运行maven项目

  10. python基础之元组、文件操作、编码、函数、变量

    1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...