Go 语言程序设计(2)

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

示例代码:

package main

import (
    "fmt"
    "log"
    "os"
    "path/filepath"
)

func main() {
    if len(os.Args) == 1 {
        fmt.Printf("usage: @s <whole-number>", filepath.Base(os.Args[0]))
        os.Exit(1)
    }

    stringOfDigits := os.Args[1]
    for row := range bigDigits[0] {
        line := ""
        for column := range stringOfDigits {
            digit := stringOfDigits[column] - '0'
            if 0 <= digit && digit <= 9 {
                line += bigDigits[digit][row] + " "
            } else {
                log.Fatal("invalid whole number")
            }
        }
        fmt.Println(line)
    }
}

var bigDigits = [][]string{
    {"  000  ", " 0   0 ", "0     0", "0     0", "0     0", " 0   0 ", "  000  "},
    {" 1 ", "11 ", " 1 ", " 1 ", " 1 ", " 1 ", "111"},
    {" 222 ", "2   2", "   2 ", "  2  ", " 2   ", "2    ", "22222"},
    {" 333 ", "3   3", "    3", "  33 ", "    3", "3   3", " 333 "},
    {"   4  ", "  44  ", " 4 4  ", "4  4  ", "444444", "   4  ", "   4  "},
    {"55555", "5    ", "5    ", " 555 ", "    5", "5   5", " 555 "},
    {" 666 ", "6    ", "6    ", "6666 ", "6   6", "6   6", " 666 "},
    {"77777", "    7", "   7 ", "  7  ", " 7   ", "7    ", "7    "},
    {" 888 ", "8   8", "8   8", " 888 ", "8   8", "8   8", " 888 "},
    {" 9999", "9   9", "9   9", " 9999", "    9", "    9", "    9"},
}

知识点:

  • os.Exit(1) 代表退出程序,并且返回 1 给操作系统(在类 Unix 系统中,程序返回 0 代表成功,非 0 代表执行失败)
  • fmt.Printf() 可以接受 % 占位符,类似于 Python 的 % 操作符(后续详讲)
  • += 在 golang 中是支持的,并且字符串的 + 连接也是支持的
  • log.Fatal() 记录一条错误信息,包含日期、时间、错误信息,会默认记录到 os.Stderr , 并且调用 os.Exit(1) 终止程序

for 循环:

go 语言中支持 3 种 for 循环:

  1. 单个条件判断:
for a < b {
    f(doThing)
}
// or 省略表达式,等价于true
for {   // for true {
    f(doThing)
}
  1. for语句中两个分号:
for i:=0; i < 10; i++ {
    f(doThing)
}
// or
for i:=0; i < 10; {
    i++
    f(doThing)
}
// or 
var i int
for ; i < 10; {
    i++
    f(doThing)
}
  1. for和range结合的语句:
// k 代表 index,v 代表 value
for k,v := range []int{1,2,3} {
    f(doThing)
}
// or 
for k := range []int{1,2,3} {
    f(doThing)
}
// or
for range []int{1,2,3} {
    f(doThing)
}

多维数组:

go 支持定义多维数组,常用声明方式为:

var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type

// 例子:
var array = [3][4]int{  
 {0, 1, 2, 3} ,   /*  第一行索引为 0 */
 {4, 5, 6, 7} ,   /*  第二行索引为 1 */
 {8, 9, 10, 11},   /* 第三行索引为 2 */
}

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

本文来自:简书

感谢作者:hlemon

查看原文:Go 语言程序设计(2)

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

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