登录
首页 >  Golang >  Go问答

谁能解释下这段go代码

来源:SegmentFault

时间:2023-01-09 14:54:24 456浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《谁能解释下这段go代码》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

代码来自 The way to go 12.4

package main

import (
    "flag" // command line option parser
    "os"
)

var NewLine = flag.Bool("n", false, "print newline") // echo -n flag, of type *bool

const (
    Space   = " "
    Newline = "\n"
)

func main() {
    flag.PrintDefaults()
    flag.Parse() // Scans the arg list and sets up flags
    var s string = ""
    for i := 0; i  0 {
            s += " "
            if *NewLine { // -n is parsed, flag becomes true
                s += Newline
            }
        }
        s += flag.Arg(i)
    }

    os.Stdout.WriteString(s)
}

这里为什么可以重复声明变量

NewLine
:

var NewLine = flag.Bool("n", false, "print newline") // echo -n flag, of type *bool

const (
    Space   = " "
    Newline = "\n"
)

随便换一个

Test
声明为同样的类型却不行:

var NewLine = flag.Bool("n", false, "print newline") // echo -n flag, of type *bool
var Test *bool

var temp = false

const (
    Space   = " "
    Newline = "\n"
    Test = &temp
)

正确答案

仔细看

NewLine
Newline
中第4个字符L,一个是大写,一个是小写.

本篇关于《谁能解释下这段go代码》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表