当前位置: 首页 > news >正文

网站建设工作室拍照物联网云平台

网站建设工作室拍照,物联网云平台,典型的网络营销案例,简述网站开发岗位及职务Go语言中包的使用 Go语言使用包#xff08;package#xff09;这种语法元素来组织源码#xff0c;所有语法可见性均定义在package这个级别#xff0c;与Java 、python等语言相比#xff0c;这算不上什么创新#xff0c;但与C传统的include相比#xff0c;则是显得“先进…Go语言中包的使用 Go语言使用包package这种语法元素来组织源码所有语法可见性均定义在package这个级别与Java 、python等语言相比这算不上什么创新但与C传统的include相比则是显得“先进”了许多。 myblog ├── conf │   └── app.conf ├── controllers │   ├── aboutme_controller.go │   ├── add_article_controller.go │   ├── album_controller.go │   ├── base_controller.go │   ├── default.go │   ├── delete_article_controller.go │   ├── exit_controller.go │   ├── home_controller.go │   ├── login_controller.go │   ├── register_controller.go │   ├── show_article_controller.go │   ├── tags_controller.go │   ├── update_article_controller.go │   └── upload_controller.go ├── main.go ├── models │   ├── album_model.go │   ├── article_model.go │   ├── home_model.go │   ├── tags_model.go │   └── user_model.go ├── myblogweb ├── routers │   └── router.go ├── static │   ├── css │   │   ├── blogsheet.css │   │   └── lib │   │   ├── highlight.css │   │   └── login.css │   ├── img │   ├── js │   │   ├── blog.js │   │   ├── lib │   │   │   ├── jquery-3.3.1.min.js │   │   │   └── jquery.url.js │   │   └── reload.min.js │   └── upload │   └── img │   └── 2018 │   └── 12 │   └── 11 │   ├── 1544511378-bee2.png ├── tests │   └── default_test.go ├── utils │   ├── myUtils.go │   └── mysqlUtils.go └── views├── aboultme.html├── album.html├── block│   ├── home_block.html│   └── nav.html├── home.html├── index.tpl├── login.html├── register.html├── show_article.html├── tags.html└── write_article.htmlGo 语言的源码复用建立在包package基础之上。包通过 package, import, GOPATH 操作完成。 1、 main包 Go 语言的入口 main() 函数所在的包package叫 mainmain 包想要引用别的代码需要import导入 2、 package src 目录是以代码包的形式组织并保存 Go 源码文件的。每个代码包都和 src 目录下的文件夹一一对应。每个子目录都是一个代码包。 代码包包名和文件目录名不要求一致。比如文件目录叫 hello但是代码包包名可以声明为 “main”但是同一个目录下的源码文件第一行声明的所属包必须一致 同一个目录下的所有.go文件的第一行添加 包定义以标记该文件归属的包演示语法 package 包名包需要满足 一个目录下的同级文件归属一个包。也就是说在同一个包下面的所有文件的package名都是一样的。在同一个包下面的文件package名都建议设为是该目录名但也可以不是。也就是说包名可以与其目录不同名。包名为 main 的包为应用程序的入口包其他包不能使用。 在同一个包下面的文件属于同一个工程文件不用import包可以直接使用 包可以嵌套定义对应的就是嵌套目录但包名应该与所在的目录一致例如 // 文件qf/ruby/tool.go中 package ruby // 可以被导出的函数 func FuncPublic() { } // 不可以被导出的函数 func funcPrivate() { }包中通过标识符首字母是否大写来确定是否可以被导出。首字母大写才可以被导出视为 public 公共的资源。 3、 import 要引用其他包可以使用 import 关键字可以单个导入或者批量导入语法演示 A通常导入 // 单个导入 import package // 批量导入 import (package1package2)B点操作 我们有时候会看到如下的方式导入包 import(. fmt ) 这个点操作的含义就是这个包导入之后在你调用这个包的函数时你可以省略前缀的包名也就是前面你调 用的fmt.Println(hello world)可以省略的写成Println(hello world) C起别名 别名操作顾名思义我们可以把包命名成另一个我们用起来容易记忆的名字。导入时可以为包定义别名语法演示 import (p1 package1p2 package2) // 使用时别名操作调用包函数时前缀变成了我们的前缀 p1.Method()D_操作 如果仅仅需要导入包时执行初始化操作并不需要使用包内的其他函数常量等资源。则可以在导入包时匿名导入。 这个操作经常是让很多人费解的一个操作符请看下面这个import import (database/sql_ github.com/ziutek/mymysql/godrv) _操作其实是引入该包而不直接使用包里面的函数而是调用了该包里面的init函数。也就是说使用下划线作为包的别名会仅仅执行init()。 导入的包的路径名可以是相对路径也可以是绝对路径推荐使用绝对路径起始于工程根目录。 4、GOPATH环境变量 import导入时会从GO的安装目录也就是GOROOT环境变量设置的目录和GOPATH环境变量设置的目录中检索 src/package 来导入包。如果不存在则导入失败。 GOROOT就是GO内置的包所在的位置。 GOPATH就是我们自己定义的包的位置。 通常我们在开发Go项目时调试或者编译构建时需要设置GOPATH指向我们的项目目录目录中的src目录中的包就可以被导入了。 5、init() 包初始化 下面我们详细的来介绍一下这两个函数init()、main() 是 go 语言中的保留函数。我们可以在源码中定义 init() 函数。此函数会在包被导入时执行例如如果是在 main 中导入包包中存在 init()那么 init() 中的代码会在 main() 函数执行前执行用于初始化包所需要的特定资料。例如 包源码 src/userPackage/tool.gopackage userPackage import fmt func init() {fmt.Println(tool init) }主函数源码 src/main.gopackage main import (userPackage) func main() {fmt.Println(main run)// 使用userPackageuserPackage.SomeFunc() }执行时会先输出 “tool init”再输出 “main run”。 下面我们详细的来介绍一下init()、main() 这两个函数。在 go 语言中的区别如下 相同点 两个函数在定义时不能有任何的参数和返回值。 该函数只能由 go 程序自动调用不可以被引用。 不同点 init 可以应用于任意包中且可以重复定义多个。 main 函数只能用于 main 包中且只能定义一个。 两个函数的执行顺序 在 main 包中的 go 文件默认总是会被执行。 对同一个 go 文件的 init( ) 调用顺序是从上到下的。 对同一个 package 中的不同文件将文件名按字符串进行“从小到大”排序之后顺序调用各文件中的init()函数。 对于不同的 package如果不相互依赖的话按照 main 包中 import 的顺序调用其包中的 init() 函数。 如果 package 存在依赖调用顺序为最后被依赖的最先被初始化例如导入顺序 main – A – B – C则初始化顺序为 C – B – A – main一次执行对应的 init 方法。main 包总是被最后一个初始化因为它总是依赖别的包 避免出现循环 import例如A – B – C – A。 一个包被其它多个包 import但只能被初始化一次 6、管理外部包 go允许import不同代码库的代码。对于import要导入的外部的包可以使用 go get 命令取下来放到GOPATH对应的目录中去。 举个例子比如说我们想通过go语言连接mysql数据库那么需要先下载mysql的数据包打开终端并输入以下命令 localhost:~ ruby$ go get github.com/go-sql-driver/mysql也就是说对于go语言来讲其实并不关心你的代码是内部还是外部的总之都在GOPATH里任何import包的路径都是从GOPATH开始的唯一的区别就是内部依赖的包是开发者自己写的外部依赖的包是go get下来的。 扩展 我们可以通过go install 来编译包文件。 我们知道一个非main包在编译后会生成一个.a文件在临时目录下生成除非使用go install安装到$GOROOT或​$GOPATH下否则你看不到.a用于后续可执行程序链接使用。 比如Go标准库中的包对应的源码部分路径在$GOROOT/src而标准库中包编译后的.a文件路径在$GOROOT/pkg/darwin_amd64下。
http://www.w-s-a.com/news/810448/

相关文章:

  • 温州专业营销网站公司网络建设规划
  • 做模型常说的d站是什么网站wordpress 繁體
  • 给网站做h5缓存机制获取小程序api
  • 网站开发文档东莞市建设网站首页
  • 公共空间设计网站企业门户网站建设教程
  • 网站建设公司 深圳镇江建设质量监督站网站
  • 网站底部版权怎么做软广告经典案例
  • 网站收录突然全部没有了东莞网站建设公司电话
  • 境外企业网站推广免费ppt元素
  • 2018网站建设行业广东网站seo
  • 网站后台加密云服务器2008做网站
  • dw制作一个环保网站模板下载吉安网站建设收费
  • 深圳珠宝网站设计北京高端网站建设优势
  • 合肥企业制作网站wordpress创建网站
  • 织梦网站开发兼职wordpress 中间截取缩略图
  • 南通制作网站旅游搭建网站
  • 专业做商铺的网站个人网页html模板完整代码
  • 什么网站做美食最好最专业关键词推广是什么意思
  • 自助建设网站软件网站导航网站可以做吗
  • 网站模板放哪长沙网站优化分析
  • 泉州网站建设价钱网站模板素材
  • 南通网站托管js建设网站外网
  • 成都企业网站公司wordpress内页模板
  • 58同城建网站怎么做wordpress评论显示数字ip
  • 免费制作论坛网站模板免费下载北京网站制作长沙
  • 旅游网网站建设网站如何自己做seo
  • 如何验证网站所有权做二手家具回收哪个网站好
  • 做哪种网站赚钱项目开发流程
  • 网站建设和网站网络推广网站建设软件定制
  • 站长工具网址查询全球云邮登陆网站