【Go 语言社区】Golang的初始化顺序

Init 每个包都可以定义一个或多个init函数2(原型为 func init()),init函数在包初次 被导入时调用,同一个包内的多个init函数的执行的顺序是不定的,而如果这个包又导入了其他的包,则级连调用,所有包import完成,所有init函数执行完后,则开始main的执行。 而对于全局变量,以一个简单的例子来说明: // package p var gInt int… // package a import "p"… // package b import "p"… // package main import ( "a" "b" )… 在package p中,我们定义了一个全局变量gInt,而p被package a,b所import,接 着packagemain又按序import了a,b,即a在b前被import。a先import了p,所以此时gInt被初始化,这样就解决了C/C++中全局变量初始化顺序不一致的问题。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Web项目聚集地

通俗易懂讲解Java线程安全

一个非科班的技术男,自学半年找到了份不错的程序员工作,运营维护订阅号「一个程序员的成长」希望做一个专注于Java领域的公众号,喜欢本文章可以搜索关注。

17720
来自专栏大内老A

依赖注入[2]: 基于IoC的设计模式

正如我们在《控制反转》提到过的,很多人将IoC理解为一种“面向对象的设计模式”,实际上IoC自身不仅与面向对象没有必然的联系,它也算不上是一种设计模式。一般来讲...

11630
来自专栏Kevin-ZhangCG

[ Java面试题 ]WEB篇

22480
来自专栏性能与架构

Zookeeper实例 - 分布式锁

需求场景 在分布式系统中,通常会有多个子系统需要操作同一资源,例如修改数据存储中的某一数据 这些子系统各自独立,操作共享资源时没有逻辑顺序,有可能会出现同时...

37750
来自专栏偏前端工程师的驿站

Java魔法堂:注解用法详解——@SuppressWarnings

一、前言                                     编码时我们总会发现如下变量未被使用的警告提示: ?   上述代码编译通过且可以...

210100
来自专栏武培轩的专栏

京东面经汇总

一、Java Java的优势 平台无关性、垃圾回收 Java有哪些特性,举个多态的例子。 封装、继承、多态 abstract interface区别 含有abs...

61860
来自专栏desperate633

深入理解Java多线程(multiThread)多线程的基本概念线程同步wait,notify,notifyAll线程的生命周期

一个java程序启动后,默认只有一个主线程(Main Thread)。如果我们要使用主线程同时执行某一件事,那么该怎么操作呢? 例如,在一个窗口中,同时画两排...

14520
来自专栏java工会

反射在微信公众平台开发中的应用

14940
来自专栏自动化测试实战

flask第十一篇——自定义url转换器

39360
来自专栏ImportSource

使用G1 GC,降低内存消耗20%

由于Web服务API调用(例如JSON,REST,SOAP,...),外部数据源调用(SQL,从DB拿到的数据,...),文本解析,文本构建等等,如今的Java...

30320

扫码关注云+社区

领取腾讯云代金券