GO语言基础(一):基本结构和要素

GO程序的基本结构与要素

包的概念、导入和可见性

//当前程序的包名
package main

//导入其他的包
import "fmt"

//全局变量的声明与赋值
var name = "gopher"

//一般类型的声明
type gopher struct{}

//接口的声明
type golang interface{}

//由main函数作为程序入口点启动
func main() {
        fmt.Printf("Hello, world.\n")
}

包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。

如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。

你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package mainpackage main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

一个应用程序可以包含不同的包,而且即使你只使用 main 包也不必把所有的代码都写在一个巨大的文件里:你可以用一些较小的文件,并且在每个文件非注释的第一行都使用 package main 来指明这些文件都属于 main 包。如果你打算编译包名不是为 main 的源文件,如 pack1,编译后产生的对象文件将会是 pack1.a 而不是可执行程序。另外要注意的是,所有的包名都应该使用小写字母。

导入:

一个 Go 程序是通过 import 关键字将一组包链接在一起。
import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。包名被封闭在半角双引号 "" 中。如果你打算从已编译的包中导入并加载公开声明的方法,不需要插入已编译包的源代码。

导入的方式如下:

import "fmt"
import "os"

//或者一起导入
import (
   "fmt"
   "os"
)

//或者更简洁一点
import ("fmt"; "os")

需要注意的是:

如果包名不是以 ./ 开头,如 "fmt" 或者 "container/list",则 Go 会在全局文件进行查找;如果包名以 ./ 开头,则 Go 会在相对目录中查找;如果包名以 / 开头(在 Windows 下也可以这样使用),则会在系统的绝对路径中查找。

导入包即等同于包含了这个包的所有的代码对象。

除了符号 _,包中所有代码对象的标识符必须是唯一的,以避免名称冲突。但是相同的标识符可以在不同的包中使用,因为可以使用包名来区分它们。

可见性规则

  • 别名的使用
package main
//使用fm作为"fmt"的别名
import fm "fmt" 

func main() {
   fm.Println("hello, world")
}
  • 导入的包必须使用,否则会编译出错
//当前程序的包名
package main

//导入其他的包
import (
        "fmt"
        "os"
)

//全局变量的声明与赋值
var name = "gopher"

//一般类型的声明
type gopher struct{}

//接口的声明
type golang interface{}

//由main函数作为程序入口点启动
func main() {
        fmt.Printf("Hello, world.\n")
}

在这里插入图片描述
学习内容来自此github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值