go 语言学习 – 包的用法

fx397993401 · · 1248 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

用import 引入公共包或自己定义的包 类似 c 中的include ,按照教程,写了一个判断一个数是否是偶数的包

在当前目录下 mkdir even ,进入目录,vi even.go   写入如下代码

package even
 
func Even(a int ) bool {
    state := false
    if a%2 == 0 {
        state=  true
    }
    return state
}

然后写一个测试程序 :

package main
 
import "./even"
 
func main() {
    a:= 3
    if even.Even(a) {
        println("is even")
    }else{
        println("not a even")
    }
}

两点要注意的地方,1 ,引入even 的函数 前面要加 even ;2,供外部使用的函数或变量 首字母要大写。

go 实现一个栈 :

package main 
 
type stack struct {
    top int 
    mLength int
    data [10]int
}
 
func push(s *stack, key int ) {
    if s.top +1 == 10{
        return 
    }
    s.data[s.top+1] = key
    s.top ++
    return 
}
 
func pop(s *stack ) int {
    if s.top == 0 {
        return -1
    }
    key := s.data[s.top-1] 
    s.top --
    return key
}
 
func get(s stack ) int {
    if(s.top == 0){
        return -1
    }
    return s.data[s.top-1]
} 
 
 
func main(){
    var s stack
    push(&s,25)
    push(&s,14)
    println(get(s))
 
}

用包的形式 :

package stack
 
type Stack struct {
    top int 
    mLength int
    data [10]int
}
 
func (s *Stack)Push( key int ) {
    if s.top +1 == 10{
        return 
    }
    s.data[s.top+1] = key
    s.top ++
    return 
}
 
func (s * Stack )Pop( ) int {
    if s.top == 0 {
        return -1
    }
    key := s.data[s.top-1] 
    s.top --
    return key
}
 
func (s * Stack)Get( ) int {
    if(s.top == 0){
        return -1
    }
    return s.data[s.top-1]
} 

test_stack.go

package main 
 
import "./stack"
 
func main(){
    var s stack.Stack
    s.Push(1)
    s.Push(2)
    println(s.Get())
}


原始博客地址:http://www.fuxiang90.com/2012/08/go-%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0-%E5%8C%85%E7%9A%84%E7%94%A8%E6%B3%95/



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:fx397993401

查看原文:go 语言学习 – 包的用法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1248 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传