Go语言·奇妙之旅

Go语言的"简介"

Go语言的起源

go语言是谷歌2009发布的开源编程语言。Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个大牛于2007年开始设计发明,并于2009年正式对外发布;三名初始人最终的目标是设计一种适应网络和多核时代的C语言,所以Go语言很多时候被描述为"类C语言",或者是"21世纪的C语言",Go从C继承了相似的语法、编程思想等。

所以Go语言的写法其实与C语言极其相似。

Go语言的特点

"Go兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性"

  1. 高性能、高并发
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收
  • 最吸引我的还是跨平台!跨平台真的真的非常方便而且非常非常好用!
  • 垃圾回收的力量也不容小视,可以省下很多内存呢!

踏入Go语言之门

开发环境是必不可少的!

老师的课程里面讲得很清楚啦,我也是按照老师给定的步骤一步步安装,大家切莫着急呀,慢慢安装!

正式传授基础语法!

  • 包声明,编写源文件时,必须在非注释的第一行指明这个文件属于哪个包,如package main
  • 引入包,其实就是告诉Go 编译器这个程序需要使用的包,如import "fmt"其实就是引入了fmt包。
  • 函数,和c语言相同,即是一个可以实现某一个功能的函数体,每一个可执行程序中必须拥有一个main函数。

一、基本结构

还是以大家熟悉的Hello World开场!以下图片是最基础的Go语言模型:

Go 复制代码
package main

import(
    "fmt"
)

func main(){
    fmt.Println("hello world")
}
  • 可以看出,Go语言没有强制语句后需要用";"或者"."结束
  • 需要注意大小写的区分!
    注意!下面介绍的各个基础语句都是定义在func main(){}里面的,不再多写。

二、变量

Go语言的变量定义编写不同于Java和Dart语言。对于Go而言,当变量定义为var类型且仍想要明确变量的具体类型时,需要如下方法进行定义:

Go 复制代码
var b, c int = 1, 2

三、条件语句

条件语句分为两种,第一种为if-else,第二种为switch

与Java语言相比,Go语言在编写if的条件时不用加括号。伪代码示例如下所示:

Go 复制代码
if 条件 {
    方法体
} else {
    方法体
}

注意!!!switch的每个case中无需加break即可!!伪代码示例如下所示:

Go 复制代码
switch 对象 {
case 情况1:
    方法体
case 情况2:
    方法体
default:
    方法体
}

循环语句与数组表达方法同C、Java等语言类似,这边不多说明。

四、切片

这个我想着重讲一下,切片是Java语言中没有的。Java里面有一个类似操作是对String的,它的方法为substring(index1, index2)以及substring(index)。前者是取String下标为[index1, index2)的子字符串,后者是取String下标为[index, str.length())的子字符串,没有可以直接指定取String从开头到某个下标的子字符串。Java中没有对数组切片的定义。

而Go语言不同于Java,它有对数组切片的定义。具体定义的代码如下:

Go 复制代码
s := make([]string, 6)  //定义一个数组s
s[0] = "a"
s[1] = "b"
s[2] = "c"
s[3] = "d"
s[4] = "e"
s[5] = "f"
fmt.Println(s[2:5])  //[c d e]  意思为打印s[2] s[3] s[4]
fmt.Println(s[:5])  //[a b c d e]  意思为打印s[0] s[1] s[2] s[3] s[4]
fmt.Println(s[2:])  //[c d e f]  意思为打印s[2] s[3] s[4] s[5]
  • 真的很神奇而且很方便,省去了for循环对数组的遍历就可以对数组中的指定元素进行打印!!!这个真的很好用!!狠狠爱住了!

小总结

Go语言的基础用法还是比较清晰易懂的,大家可以根据老师上课讲解的ppt上面的代码进行理解和总结,这样更有利于促进我们对Go语法的消化和运用。当然啦,如果知识吸收得足够好可以将我们学过的语言(例如Java、C、C++、Python等)写的代码题目用Go语言进行编写,这样更能够加深记忆啦!

相关推荐
CallBack8 个月前
Typora+PicGo+阿里云OSS搭建个人图床,纵享丝滑!
前端·青训营笔记
Taonce1 年前
站在Android开发者的角度认识MQTT - 源码篇
android·青训营笔记
AB_IN1 年前
打开抖音会发生什么 | 青训营
青训营笔记
monster1231 年前
结营感受(go) | 青训营
青训营笔记
翼同学1 年前
实践记录:使用Bcrypt进行密码安全性保护和验证 | 青训营
青训营笔记
hu1hu_1 年前
Git 的正确使用姿势与最佳实践(1) | 青训营
青训营笔记
星曈1 年前
详解前端框架中的设计模式 | 青训营
青训营笔记
tuxiaobei1 年前
文件上传漏洞 Upload-lab 实践(中)| 青训营
青训营笔记
yibao1 年前
高质量编程与性能调优实战 | 青训营
青训营笔记
小金先生SG1 年前
阿里云对象存储OSS使用| 青训营
青训营笔记