当前位置:   article > 正文

Golang基础教程

golang

第一章:走进Golang

Golang引入

  • 简介: Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种计算机编程语言语言。
  • 设计初衷: Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。"
  1. 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
  2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
  3. 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。
  • 应用领域:

第一段程序:Hello Golang!

  • go基本目录结构:

  • 开始写代码:第一个HelloWorld :
  1. package main //声明文件所在的包,每个go文件必须有归属的包
  2. import "fmt" //引入程序中需要用的包,为了使用包下的函数 比如:Println
  3. func main () { //main 主函数 程序的入口
  4. fmt.Println("Hello Golang!!") //在控制台打印输出一句话,Hello Golang!!
  5. }
  6. 复制代码
  • 对源文件进行编译:go bulid

  • 执行操作

  • 也可以通过go run直接编译、执行文件(但不生成exe文件)

Golang执行流程

  • 执行流程分析:

  • 上述两种执行流程的方式区别

    1. 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件 变大了很多。

    2. 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行
    3. 如果我们是直接go run go源代码,那么如果要在另外一个机器上这么运行,也需要go 开发环境,否则无法执行。
    4. go run运行时间明显要比第一种方式 长一点点
  • 编译注意事项: 编译后的文件可以另外指定名字:

语法注意事项

  • 源文件以"go"为扩展名。
  • 程序的执行入口是main()函数。
  • 严格区分大小写。
  • 方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang的简洁性。
  • Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错
  • 定义的变量或者import的包如果没有使用到,代码不能编译通过。
  • 大括号都是成对出现的,缺一不可

注释

  • 注释的作用: 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性; 注释是一个程序员必须要具有的良好编程习惯。 将自己的思想通过注释先整理出来,再用代码去体现。

  • Golang中注释类型: Go支持c语言风格的/**/块注释,也支持c++风格的//行注释。行注释更通用,块注释主要用于针对包的详细说明或者屏蔽大块的代码

    • 行注释 // VSCode快捷键:ctrl+/ 再按一次取消注释

    • 块注释(多行注释) /**/ VSCode快捷键:shift+alt+a 再按一次取消注释

      注意:块注释中不可以嵌套块注释

提示:官方推荐使用行注释 //

代码风格

  • 注意缩进

    向后缩进:tab 向前取消缩进:shift+tab 通过命令完成格式化操作:

  • 成对编程 {} () “ ” ‘ ’
  • 运算符两边加空白 ( ps : 一般来说,写代码的时候都得这样,这是规范编写代码的好习惯 )
  • 以下代码是错误的:

go的设计者想要开发者有统一的代码风格

  • 行长约定:

    一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅

API

Go语言提供了大量的标准库,因此 google 公司也为这些标准库提供了相应的API文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法。

第二章 变量与数据类型

变量

  • 简单代码展示
  1. package main
  2. import "fmt"
  3. func main(){
  4.    //1.变量的声明
  5.    var age int
  6.    //2.变量的赋值
  7.    age = 18
  8.    //3.变量的使用
  9.    fmt.Println("age = ", age);
  10.    //声明和赋值可以合成一句:
  11.    var age2 int = 19
  12.    fmt.Println("age2 = ", age2);
  13.    // var age int = 20;
  14.    // fmt.Println("age = ", age);
  15.    /*变量的重复定义会报错:
  16.         # command-line-arguments
  17.         .\main.go:16:6: age redeclared in this block
  18.                        previous declaration at .\main.go:6:6
  19.        */
  20.    //不可以在赋值的时候给与不匹配的类型
  21.    var num int = 12.56 //报错
  22.    fmt.Println("num = ", num);
  23. }
  24. 复制代码
  • 变量的四种定义方法、一次性声明多个变量(代码展示)
  1. package main
  2. import "fmt"
  3. //全局变量:定义在函数外的变量
  4. var n7 = 100
  5. var n8 = 9.7
  6. //设计者认为上面的全局变量的写法太麻烦了,可以一次性声明:
  7. var (
  8.    n9 = 500
  9.    n10 = "netty"
  10. )
  11. func main(){
  12.    //定义在{}中的变量叫:局部变量
  13.    //第一种:变量的使用方式:指定变量的类型,并且赋值,
  14.    var num int = 18
  15.    fmt.Println(num) //18
  16.    //第二种:指定变量的类型,但是不赋值,使用默认值
  17.    var num2 int
  18.    fmt.Println(num2) //0
  19.    //第三种:如果没有写变量的类型,那么根据=后面的值进行判定变量的类型 (自动类型推断)
  20.    var num3 = "tom"
  21.    fmt.Println(num3) //tom
  22.    //第四种:省略var,注意 := 不能写为 =  
  23.    sex := "男"
  24.    fmt.Println(sex) //
  25.    fmt.Println("------------------------------------------------------------------")
  26.    //声明多个变量:
  27.    var n1,n2,n3 int
  28.    fmt.Println(n1) //0
  29.    fmt.Println(n2) //0
  30.    fmt.Println(n3) //0
  31.    var n4,name,n5 = 10,"jack",7.8
  32.    fmt.Println(n4) //10
  33.    fmt.Println(name) //jack
  34.    fmt.Println(n5) //7.8
  35.    n6,height := 6.9,100.6
  36.    fmt.Println(n6) //6.9
  37.    fmt.Println(height) //100.6
  38.    //全局变量输出
  39.    fmt.Println(n7) //100
  40.    fmt.Println(n8) //9.7
  41.    fmt.Println(n9) //500
  42.    fmt.Println(n10) //netty
  43. }
  44. 复制代码

基本数据类型

整数类型

  • 有符号整数类型

  • 无符号整数类型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/576520
推荐阅读
相关标签
  

闽ICP备14008679号