【GO语言学习 基础篇】03 package 包的定义及其引用

源代码

go语言基础


题外话,做这个主要是给自己看,留下一些思考的痕迹。写代码写注释是个好习惯。

主要是封装一些功能,就好像一辆车有许多零件,如果一个程序都写在一个文件里,那么这个文件或许能达到无穷量级的代码,这个时候,就要将功能分开来,然后拼接成完整的程序。

  1. package 包的定义及其引用

    一个文件夹下面是不允许出现多个包的,所以 main 包里面只能有 package main, 所以我们应该对新的包新建一个文件夹,然后把包放在里面。后续会了解一些规范性的框架

    package person
    
    import (
    "errors"
    "strconv"
    )
    
    // 首字母大写 可以被外部调用 如果首字母是小写的 那么是私有的 无法被调用
    func PersonInfo(name string, age int) (string, error) {
    if name == "" {
    return "", errors.New("name can not be empty")
    } else if age <= 0 || age > 100 {
    return "", errors.New("wrong age")
    }
    // 这里强转了一下 age
    return "name:" + name + ",age:" + strconv.Itoa(age), nil
    }
    
    package main
    
    import (
    "errors"
    // 这样就不需要使用 fmt. 来调用Println
    // . "fmt"
    "fmt"
    "strconv"
    // 这里导包 可以直接用 ./ 点斜杠  不知道为啥不会自动导入
    // p是别名
    //p ""
    )
    
    /*
    这玩意是默认存在的 这里显性地展示出来
    在包运行的时候 就会自动执行
    就和java的static一样(个人理解)
    */
    func init() {
    fmt.Println("-------------init() -------------")
    }
    
    // package packageName
    func main() {
    /*
    包的初始化顺序
    1 包级别的变量
    2 init()函数
    
            可以匿名导入
            import _ 包名
    
        */
        // 直接Println 而不是fmt.Println  但是建议别用
        fmt.Println("If you shed tears when you miss the sun, you also miss the stars. ")
        fmt.Println("---------------------------------")
        // 这里使用了别名
        info, err := PersonInfo("Bob", 18)
        fmt.Println(info)
        fmt.Println(err)
    }
    
    // 首字母大写 可以被外部调用
    func PersonInfo(name string, age int) (string, error) {
    if name == "" {
    return "", errors.New("name can not be empty")
    } else if age <= 0 || age > 100 {
    return "", errors.New("wrong age")
    }
    // 这里强转了一下 age
    return "name:" + name + ",age:" + strconv.Itoa(age), nil
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值