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. hibernate学习(5)——多对多关系映射

    1.创建实体和映射 package com.alice.hibernate03.vo; import java.util.HashSet; import java.util.Set; public c ...

  2. 给Source Insight做个外挂系列之一--发现Source Insight

    一提到外挂程序,大家肯定都不陌生,QQ就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ...

  3. Linux_函数使用手册(中、英),确实不错

    http://files.cnblogs.com/files/findumars/Linux_functions_ch_en.rar

  4. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

  5. spring定时任务

    需求:在tomcat启动时开启一个定时任务,即项目启动完成后,自动执行某一特定任务. 想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也 ...

  6. Oracle同一数据库实例不同用户间的数据迁移

    1.目标用户登录,创建自我连接的DB LINK -- Create database link create public database link MYLINK connect to 原用户名 u ...

  7. Android OnTouchListener 导致 OnClickListener 接收不到消息 无反应

    原因是onTouch返回了true把消息给消耗掉了,所以OnClickListener接收不到消息. 解决办法:onTouch返回false

  8. 错误 You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work

    Win  10    下python3.6 使用Beautiful Soup  4错误 You are trying to run the Python 2 version of Beautiful ...

  9. IOS 调用系统照相机和相册

    /** *  调用照相机 */ - (void)openCamera { UIImagePickerController *picker = [[UIImagePickerController all ...

  10. Ubuntu下查看机器信息

    原文地址 测试机器的硬件信息 查看CPU信息(看到有8个逻辑CPU, 也知道了CPU型号)   # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq ...