go语言之行--包与变量

一、包的概念

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

包的概念总结:

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

1.包引入的方法

方法一:

import "fmt"
import "os"

方法二:

import "fmt"; import "os"

方法三(推荐!)

import (
   "fmt"
   "os"
)

2.引入其他包

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

示例:

我的GOPATH为:C:\Users\17647\Desktop\go_work\src

首先建立包文件1:C:\Users\17647\Desktop\go_work\src\day02\eg1\pkg.go(相对于GOPATH/src的路径为day02\eg1\pkg.go)

内容如下:

package add   

import "fmt"

func Sum(a int,b int)  {
    var c int
    c = a + b
    fmt.Println("res",c) 

}

在main进行引入如下:

package main

import (
    "fmt"
    "day02/eg1"  /* 引入包 */
)

func main() {
    add.Sum(2,3) /* 调用包 */
    fmt.Println("Hello, World!")
}

图示:

二、变量

1.单个变量的声明

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

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

示例:

package main

import "fmt"
func main() {

    var a string  /* 声明一个变量名为a,类型为字符串的变量 */
    a = "wd"      /* 对a变量赋值*/
    var age int = 22  /* 声明并赋值变量 */
    fmt.Println(a,age)
}

2.多个变量声明

  • 先声明后赋值:var <变量1>,<变量2>,<变量3>  <变量类型>     赋值 : <变量1>,<变量2> =  值1,值2
  • 声明同时赋值 :var  <变量1>,<变量2> = 值1,值2   可简写为: <变量1>,<变量2> = 值1,值2
  • 多个变量还可以使用var()声明

示例:

package main

import "fmt"
func main() {

    var a,b int
    a,b = 1,2
    var c,d = 3,"wd" /* 类型自动推断 */
    e, f := 4, "hello"  /* 简写 */
    fmt.Println(a,b,c,d,e,f)
}

使用var()声明

package main

import "fmt"

func main()  {
    var (
        a int   //默认值为0
        b string // 默认值为空字符串("")
        c = 3
    )
    fmt.Println(a,b,c)
}

3.变量名

命名原则:

  1. 首字符可以是任意的Unicode字符或者下划线
  2. 剩余字符可以是Unicode字符、下划线、数字
  3. 不能作为用以下关键字作为变量名
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

4.可见性

可见性即对包外可见,当其他包调用当前包的变量时候是否允许可见(可访问)。

  • 变量开头字符大写,表示可见
  • 变量开头字母非大写,则表示私有,不可见

原文地址:https://www.cnblogs.com/wdliu/p/9175815.html

时间: 2024-11-08 20:48:39

go语言之行--包与变量的相关文章

Go语言基础之包

Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(package) 包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt.os.io等. 定义包 我们还可以根据自己的需要创建自己的包.一个包可以简单理解为一个存放.go文件的文件夹. 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该

05.C语言数据、常量和变量

C语言数据.常量和变量 图片文字等都是数据 ,在计算中的0和1存储 一.分类 数据分成静态数据和动态数据. 1.静态数据:一些永久性的数据,一般存储在硬盘中,只要硬盘没有损坏数据都是存在的 一般以文件的形式存储在硬盘上,电脑关机启动依然存在 2.动态数据:程序运行过程中,动态产生的临时数据,一般存储在内存中,内存的存储空间一般较小,计算机关闭 后这些数据就会被清除,软件或者电脑关闭则这些临时数据也会被清除. 3.静态数据和动态数据可以转换. 4.为什么不把动态数据存放到硬盘?因为直接访问内存速度

R语言:recommenderlab包的总结与应用案例

R语言:recommenderlab包的总结与应用案例 1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算法的框架.它提供了几种基础算法,并可利用注册机制允许用户使用自己的算法recommender包的数据类型采用S4类构造. (1)评分矩阵数据接口:使用抽象的raringMatrix为评分数据提供接口.raringMatrix采用了很多类似矩阵对象的操作,如 dim(),dimnames() ,rowCo

Windows 平台下 Go 语言的安装和环境变量设置

1. Go 语言 SDK 安装包下载和安装 最新稳定版 1.5.3 安装包 go1.5.3.windows-amd64.msi下载地址 https://golang.org/dl/,大小约 69 MB(作者上传了一份该版本安装包到 CSDN 资源,嫌国外网速慢可以去下载:http://download.csdn.net/detail/defonds/9408855),下载之后直接运行安装,安装路径就使用它默认的 C:\Go\ 即可,之后一路 Next 并完成安装. 2. Go 语言环境变量设置

李洪强iOS开之【零基础学习iOS开发】【02-C语言】04-常量、变量

在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文字数据.用迅雷下载的文件数据等.这讲我们就来介绍C语言中数据的处理. 一.数据的存储 1.数据类型 首先来看看计算机是怎么存储数据的.总的来说,计算机中存储的数据可以分为两种:静态数据和动态数据. 1> 静态数据 概念:静态数据是指一些永久性的数据,一般存储在硬盘中.硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件. 存储的时长:计算机关闭之后

【零基础学习iOS开发】【02-C语言】04-常量、变量

本文目录 一.数据的存储 二.数据类型 三.常量 三.变量 在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文字数据.用迅雷下载的文件数据等.这讲我们就来介绍C语言中数据的处理. 回到顶部 一.数据的存储 1.数据类型 首先来看看计算机是怎么存储数据的.总的来说,计算机中存储的数据可以分为两种:静态数据和动态数据. 1> 静态数据 概念:静态数据是指一些永久性的数据,一般存储在硬盘中.硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G

Swift语言指南(一)--语言基础之常量和变量

Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合类型)Collection Types. 与 C 语言类

R语言 文本挖掘 tm包 使用

#清除内存空间 rm(list=ls()) #导入tm包 library(tm) library(SnowballC) #查看tm包的文档 #vignette("tm") ##1.Data Import 导入自带的路透社的20篇xml文档 #找到/texts/crude的目录,作为DirSource的输入,读取20篇xml文档 reut21578 <- system.file("texts", "crude", package = &quo

R语言中文分词包jiebaR

前言 本文挖掘是数据挖掘中一个非常重要的部分,有非常广阔的使用场景,比如我们可以对新闻事件进行分析,了解国家大事:也可以对微博信息进行分析,通过社交舆情看看大家的关注点.通过文本挖掘找到文章中的隐藏信息,对文章的结构进行分析,判断是不是同一个作者写文章:同时可以对邮件分析,结合bayes算法判断哪些是垃圾邮件,哪些是有用的邮件. 本文挖掘的第一步,就是要进行分词,分词将直接影响文本挖掘的效果.R语言在分词方面有很好的支持,接下来就给大家介绍一个不错的R语言中文分词包"结巴分词"(jie