Go--包/变量/常量(1)

一. 包的基本概念

包是go语言中不可缺少部分,在每个go源码的第一行进行定义,定义方式是:package "包名",并且该名称是作为调用该包时候所使用的名称。

  1. 包的概念总结:
  • 每个 Go 文件都属于且仅会属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名可能不同,为了规范,功能相似或者属于相同性质的源码归集到相同的包名中。
  • 每个应用程序都必须有且只有一个包名称为main,他是该程序的入口,执行时候会寻找包名为main的代码
  • 包与包之间可以被相互调用,主要为了减少代码重复性
  • 包一旦被引入就需要被使用,除非引入的时候忽略它(前面加_表示忽略它,只是用它来初始化),如果引入了包但在代码中没用使用,运行时候会报错,当然这些东西用了IDE自然会有提示。

2、包的引入

import "net/http",import "strings";
或者(推荐用下面这种方式)
import (
   "fmt"
   "os"
)

go语言中,引入包的路径是根据GOPATH/src 这个环境变量作为相对路径进行引入的,如果GOPATH存在多个,那么go将逐一寻找路径,直到找到,若GOPATH/src未找到则会编译出错。

三,变量
1.go语言中,所有变量都必须先声明在使用,下面是声明变量和赋值方法:

  • 先声明后赋值: var <变量名称> <变量类型> 赋值:变量的赋值格式: <变量名称> = <表达式>
  • 声明的同时赋值:var <变量名称> <变量类型> = <表达式> (简写为 变量名称 := 表达式)
package main

import "fmt"
func main() {
    var ip string  /* 声明一个变量名为a,类型为字符串的变量 */
    ip = "127.0.0.1"      /* 对a变量赋值*/
    var age int = 22  /* 声明并赋值变量 */
    fmt.Println(a,age)
    e, f := 4, "hello"  /* 简写,编译器会自动类型推断 */
}

2.变量名命名原则:
首字符可以是任意的Unicode字符或者下划线
剩余字符可以是Unicode字符、下划线、数字
不能作为用以下关键字作为变量名

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

3.可见性
可见性即对包外可见,当其他包调用当前包的变量时候是否允许可见(可访问)。
变量开头字符大写,表示可见
变量开头字母非大写,则表示私有,不可见

4.变量的作用域
函数内定义的变量称为局部变量,其作用域在函数内
函数外定义的变量称为全局变量,作用于整个包,并且该变量首字母大写,则对其他包可见

四,常量

1.常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

定义常量语法:
const 名称 类型 = value
多个常量定义语法:

const (
    a = 0  //类型自动推倒
    b = 1 c = 2 )
  1. iota解释:

iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

iota 可以被用作枚举值:

const (
    a = iota
    b = iota
    c = iota
)

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式:

const (
    a = iota
    b
    c
)

用法:

import "fmt" 
func main() { const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
 )
    fmt.Println(a,b,c,d,e,f,g,h,i)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 环境搭建 Golang在Mac OS上的环境配置 使用Visual Studio Code辅助Go源码编写 VS ...
    陨石坠灭阅读 5,797评论 0 5
  • Go语言数据类型 Go语言本质是用C语言编写的一套高级开发语言, 所以Go语言中的数据类型大部分都是由C语言演变而...
    极客江南阅读 954评论 0 6
  • 变量: 变量是计算机语言中能储存特定类型计算结果或能表示特定类型值的抽象概念 声明变量及变量赋值: go语言中声明...
    SUN_LEON阅读 447评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,892评论 2 9
  • 雨吧哒吧哒落了一夜,清晨早起的学生,上早班的人,加入雨中,雨兴奋了,哗拉哗拉竟边唱边舞,步点欢快又密集,看着眼花缭...
    三千克城阅读 294评论 0 0