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

go语言学习初探(一)

go语言安装省略

首先创建一个hello.go 文件
package main

import (
    "fmt"
)

func main() {
    fmt.Println('hello world!')
}

  package 表明go程序所属的包,同时每一个可执行的go程序,都必须有一个main的主入口包,同时必须有一个main的主函数;go语言的main函数不能带参数,也不可以定义返回值;

  import 用来导入依赖的包;PS:导入的包如果未使用,编译器会报错;

  func 定义函数;一个常规的函数包括以下部分:func 函数名(参数列表)(返回值列表){ 函数体 }

GO语言命令行及参数
import (
    "os" // 获取命令行参数需要的包
)

func main() {
    arg1 := os.Args[1]
    arg2 := os.Args[2]
    fmt.Println(arg1, arg2)
}

// cmd      >> go run hello.go  words hello,world!
// print    >> words hello,world!

   os 为获取命令行参数需要的包,os.Args 获取命令行参数集合;

GO 语言Test用例
  Test 用例注意事项
1. 文件名必须以xx_test.go命名
2. 方法必须是Test[^a-z]开头
3. 方法参数必须 t *testing.T

   例子:

package config

func LoadConfig() {}
package config

import (
    "testing"
)

func TestLoadConfig(t *testing.T) {
    t.Log("this is log")
    LoadConfig()
}
GO 工程结构
  了解Go语言的工程结构,首先需要理解$GOPATH与$PATH两个环境变量。windows 、mac & linux 等不同语言不同,安装的方式不同;
// cmd      >> vim ~/.bash_profile
export GOPATH=${HOME}/go
export PATH=${PATH}:${GOPATH}/bin
// cmd      >> vim .bash_profile

   以上内容为指定根目录的Go文件夹为工程目录。多工程GOPATH以:分隔。
   例子:

~/.bash_profile
export GOPATH=${HOME}/go:/Users/Mr.Carry/Desktop/demo
export PATH=${PATH}:${GOPATH}/bin
项目工程目录组织方式
<demo>
    |__ <src>
        |__ <config>
            |__ config.go
            |__ config_test.go
        |__ <test>
            |__ main.go
    |__ <pkg>
    |__ <bin>

   <pkg>: 包将被安装到此处。<src>: 代码文件在此处。

GDB 调试(未实现)

下一篇 go语言学习初探(二)基础语法

相关文章:

  • 神经网络_1
  • 2.0解析系列 | 如何在分布式架构下完美实现“全局数据一致性”?
  • 阿里云中间件推出全新开发者服务
  • H5之VIDEO 标签 视频播放不了MP4视频的问题
  • 作业五:结对项目-四则运算 “软件”之升级版
  • EOS 开发终极神器-vscode (你绝对找不到的干货)
  • 一、计算机的组成
  • 《Redis开发与运维》笔记
  • Result Maps collection already contains value forxxx
  • Windows下安装最新版的MongoDB
  • 微信互联网:如何让别人找到你的小程序?
  • Unity重置Animator到初始状态和重复播放同一个Animation
  • 一种轻量级的C4C业务数据同步到S/4HANA的方式:Odata通知
  • 发送HTTP_GET请求 表头application/json
  • 网络文件共享-SAMBA
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CSS中外联样式表代表的含义
  • in typeof instanceof ===这些运算符有什么作用
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • js作用域和this的理解
  • k8s 面向应用开发者的基础命令
  • learning koa2.x
  • Netty源码解析1-Buffer
  • Rancher如何对接Ceph-RBD块存储
  • text-decoration与color属性
  • Vue UI框架库开发介绍
  • Vue学习第二天
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 闭包--闭包作用之保存(一)
  • 工作手记之html2canvas使用概述
  • 京东美团研发面经
  • 浏览器缓存机制分析
  • 什么是Javascript函数节流?
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​用户画像从0到100的构建思路
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 达梦数据库知识点
  • #stm32整理(一)flash读写
  • #控制台大学课堂点名问题_课堂随机点名
  • (2015)JS ES6 必知的十个 特性
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)逆序输出字符串
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (编译到47%失败)to be deleted
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (南京观海微电子)——I3C协议介绍
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决