一、为什么使用开发工具
* 在企业开发中不使用记事本进行开发,而使用开发工具,因为开发工具可以提升开发效率。
* 不同公司的开发工具可能不同,但是每个工具选择开发工具时都满足以下几点
* 提升开发效率
* 功能强大
* 软件使用不是特别复杂
* 适合公司项目
二、 Goland简介
* Goland由JetBrains公司推出的专门针对Go语言的开发工具,使用Goland时有如下优点:
* 代码提示
* 快速编译
* 一键构建
*Goland的下载地址: GoLand by JetBrains: More than just a Go IDE
三、Goland简单使用
1、新建项目
2、选择项目的路径,注意路径不要包含中文
3、新建Go文件,右键"Study"-->"New"-->"Go File"
4、在弹出框中输入文件名, 选择Kind为"Simple Application"可以生成包名和主函数
5、编写代码后,在空白位置右键,选择"Run 'go build main.go'"
6、 弹出控制台,观察结果
四、Goland常用配置
* 主题设置(Darcula)
* 菜单"File"-->"Settings"-->Appearance & Behavior -->右侧Theme修改主题
* 字体大小设置(24)
* 菜单"File"-->"Settings"-->Editor --> Font -->右侧Size输入字体大小
* 快捷键设置(Eclipse)
* 菜单"File"-->"Settings"-->右侧选择自己熟悉软件的快捷键
五、打印输出
* 在程序中输出使用频率很高,使用输出语句可以在程序执行过程中把一些结果输出到控制台中,程序员通过控制台中输出结果判断是否符合预期
* 在Go语言中有多种输出方式,不同的输出适用场景不同.归纳起来三种,每种还分为3种方式(原内容,原内容+ln,原内容+f)
* PrintXX()
* FprintXX()
* SprintXX()
* FprintXX在Go Web中使用比较多,把内容写到响应流中
* Fprintln()输出后会添加换行符,所以长度比内容多1个
*代码示例:os.Stdout 表示控制台输出流
func main() {
fmt.Fprint(os.Stdout, "内容1")//向流中写入内容,多个内容之间没有空格
fmt.Fprintln(os.Stdout, "内容2")//向流中写入内容后额外写入换行符,多个内容之间空格分割
fmt.Fprintf(os.Stdout, "%s", "内容3")//根据verb格式向流中写入内容
}
* Println()底层实际是Fprintln(),返回值依然是内容长度和错误信息
*Sprintln和Println()主要的区别是:
* Sprintln()把形成结果以字符串返回,并没有打印到控制台
* Println()把结果打印到控制台,返回内容长度和错误
* 所以从严格意义角度讲SprintXX不是打印输出,而更像字符串转换
六、转义字符
* 在Go语言中可以使用 %+特定字母或/+特定字母形成转义字符,这个表示特定含义的组合称为转义字符.
* 在Go语言中又称为verb
* 转义字符在Go语言中在以下两种情况使用频率较高
* 以下为常用转义字符
verb
含义
%d
十进制整数
%x,%X
大小写方式显示十六进制整数
%o
八进制整数
%b
二进制整数
%f,%g,%e
浮点数
%t
布尔值
%c
字符
%s
字符串
%q
带双引号字符串
%v
内置格式内容
%T
类型
%p
内存地址
%%
字符%
\n
换行
\t
缩进
七、用户输入
* 用户输入在平时练习中使用频率较高.
* 程序运行时,运行到接收用户输入语句,程序阻塞,用户在控制台输入内容后,把内容赋值给对应的变量,程序继续运行.
* 在Go语言中有多种接收用户输入的方式,其中使用fmt包的Scan函数使用最简单
* 使用Scanln(&变量名,&变量名)的方式接收.
* 输入的内容必须都在同一行
* 每个内容之间使用空格分割
* 回车换行后表示停止输入.
* 如果希望接收3个值,而在控制台只输入2个值,回车后也停止接收
* 如果希望接收2个值,而在控制台输入3个,回车后只能接收两个值
* 也可以使用fmt.Scanf(verb,&变量)按照特定的格式进行输入
* 需要注意,如果同行输入两个字符串,中间必须使用空格隔开,否则编译器无法对输入内容拆分
八、变量声明和赋值
8.1 静态语言和动态语言
* 静态类型语言和强类型语言是同一个意思,表示在编译期就确定了类型,而且类型是不可以改变的
* 动态类型语言和弱类型语言是同一个意思,表示在运行过程中才能确定,且内容是什么类型变量类型跟随变化
8.2 Go语言变量简介
* Go语言和其他语言一样都有基本存储容器.可以存储一个或多个值在程序中,方便程序中多次使用容器中内容,这个容器称为:变量
* Go语言虽然是静态类型语言,但是支持动态类型语言语法,因为Go语言希望程序员少声明变量,增加GC效率
8.3 变量命名规则
* 以字母或下划线开头(Go语言中多不以_开头)
* 后面可以是任意数量的字符、数字和下划线
* 区分大小写
* 不能是关键字(关键字具备特定含义)
* 可以是保留字,但是建议不使用保留字做为变量名,
* 在同一范围内不允许出现同名变量
* Go语言要求变量声明后至少使用一次(赋值不属于使用)
8.4 变量声明及赋值
* 先声明后赋值(声明后开辟内存,不同类型变量都有不同初值)
//1. 声明
var 变量名 类型
//2. 赋值
变量名=值
//示例:
var smallming string
smallming = "英文名"
* 声明并赋值(此方式不建议)
//语法:
var 变量名 类型 = 值
//示例
var smallming string = "英文名"
* 声明并赋值(省略类型,变量类型取决于值的类型)
//语法:
var 变量名 = 值
//示例:
var smallming = "英文名"
* 短变量(只能在函数内使用)
//语法:
变量名 := 值
//示例:
smallming := "英文名"
8.5 声明多个变量和赋值
* 先声明后赋值
func main() {
var a, b, c int
a, b, c = 1, 2, 3
fmt.Println(a, b, c)
}
* 声明时赋值
func main() {
var a, b, c, d = 1, 2, 3, false
fmt.Println(a, b, c, d)
}
* 声明并赋值,推荐方式
func main() {
var (
a = 1
b = true
c = "测试"
)
fmt.Println(a, b, c)
}
* 使用短变量给多个变量赋值时,必须要保证至少有个变量是没有声明的
func main() {
var (
a = 1
b = true
c = "测试"
)
//短变量操作多个值时只要保证里面至少有一个新变量
b, c, d := false, "smallming", 3
fmt.Println(a, b, c, d)
}

Go语言学习教程(二)相关推荐

  1. C语言学习教程:搬山游戏开发源码

    C语言学习教程:搬山游戏开发源码 #include<stdio.h> void main() {int n,k,x,y,cc,pc,g;clrscr();puts("****** ...

  2. 最新go语言学习教程

    go语言学习教程 集合了连接go routine.go连接redis.go连接kafka等示例,所有代码均经过实践,可以直接使用 GitHub - fastbpmn/go-study: go语言的个人 ...

  3. iOS开发Swift语言学习教程-欧阳坚-专题视频课程

    iOS开发Swift语言学习教程-16345人已学习 课程介绍         Swift这套视频是针对有Objective-C/iOS基础,想转成Swift开发的学习视频,视频中从Swift语法,结 ...

  4. 转 LUA语言学习教程

    转 LUA语言学习教程 写在最前面,为什么要了解LUA语言?因为WOW的宏甚至插件的编写都离不开LUA!功欲擅其事,必先利其器,如果想玩转魔兽世界,而不是被魔兽世界玩的话,先来学习一下LUA语言吧! ...

  5. LUA语言学习教程(转)

    转自:http://www.cnblogs.com/chuncn/archive/2010/07/03/1770464.html 写在最前面,为什么要了解LUA语言?因为WOW的宏甚至插件的编写都离不 ...

  6. C语言学习教程:超级玛丽游戏开发源码分享

    C语言学习教程:超级玛丽游戏开发源码分享 这里推荐一下我建的C/C++语言学习交流秋秋裙,秋秋搜索群名称:小凯C/C++语言学习之家,裙里有不错的学习教程,从入门到项目实战.学习开发用到的开发工具,专 ...

  7. net语言学习教程 net语言从入门到精通视频教程

    net语言学习教程_0基础学net语言也可以,空闲时间学习,不耽误上班.2019年net语言新课程已经上线,多种课程任您选,随到随学,互动性强,效果好! NET语言学习介绍 NET学习课程说明 NET ...

  8. c++扫雷游戏代码_C语言学习教程,用C语言编写扫雷游戏

    本文实例为大家分享了C语言实现扫雷游戏及其优化的具体代码,供大家参考,具体内容如下 关于扫雷优化 1.核心思想:使用两个二维数组进行设计,一个用于显示,一个用于后台雷的布置. 2.使用宏常量,后期可以 ...

  9. c语言字 字符串转换成数组_C语言学习教程之详解C语言中的字符串数组

    在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include 总结 以上 ...

  10. Go语言学习教程(十一)

    一.结构体指针 * 由于结构体是值类型,在方法传递时希望传递结构体地址,可以使用时结构体指针完成 * 可以结合new(T)函数创建结构体指针 peo := new(People) //因为结构体本质是 ...

最新文章

  1. 日订单50万级分布式事务
  2. idea bookmark 怎么用
  3. 开源项目PullToRefresh详解(一)——PullToRefreshListView
  4. 【并发编程】CountDownLatch与CyclicBarrier
  5. [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换
  6. 『PyTorch x TensorFlow』第六弹_从最小二乘法看自动求导
  7. html text-decoration,如何使用text-decoration
  8. Java基本语句(注释语句、javadoc、System.out.print和println和printf区别)复习2
  9. 企业架构之道(一)之企业信息化建设
  10. BlackBerry 9900刷机
  11. 4、BFS算法套路框架——Go语言版
  12. 将Visual Leak Detector集成至Visual Studio 2019
  13. 咖啡自由的六个阶段:无差别打击,你还能承受吗?
  14. 16个最佳WordPress登录页面插件
  15. matlab实验报告的总结,一些数字信号处理实例(学校实验报告总结)
  16. 6.1-6.30推荐文章汇总
  17. SQL数据库脚本操作(WINCC VBS脚本)
  18. 哈理工 校赛(热身赛)2238 围巾的纠结(判断回路问题)
  19. yy黑盒测试岗一面面经--这杯水好凉
  20. PHP中的SSTI模板注入——Twig、Smarty、Blade

热门文章

  1. JMX : MXBean
  2. 在线教育平台建立付费会员体系
  3. CSS笔记(CSS禅意花园+CSS揭秘)
  4. windows10自动修复无法开机
  5. 全国计算机一级考试下半年,下半年全国计算机一级考试试题及答案
  6. Mac 截图工具 iShot Pro - 软件介绍、下载安装详细教程
  7. 英语学习APP—百词斩
  8. idea配置git及使用
  9. 深入了解,学习线索二叉树
  10. phpRedis函数使用总结