原创

Go语言bool转string

payload["fatca"] = strconv.FormatBool(frontOfficeCustomerRequestBody.FurtherInformation.FatcaIsUsCitizen)

等价于

if frontOfficeCustomerRequestBody.FurtherInformation.FatcaIsUsCitizen {
    payload["fatca"] = "true"
} else {
    payload["fatca"] = "false"
}

底层源代码

其实都一样的,只是strconv包下面的FormatBool方法帮你做好了封装。

"1", "t", "T", "true", "TRUE", "True"      =>  true

"0", "f", "F", "false", "FALSE", "False"   =>  false
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package strconv

// ParseBool returns the boolean value represented by the string.
// It accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.
// Any other value returns an error.
func ParseBool(str string) (bool, error) {
    switch str {
    case "1", "t", "T", "true", "TRUE", "True":
        return true, nil
    case "0", "f", "F", "false", "FALSE", "False":
        return false, nil
    }
    return false, syntaxError("ParseBool", str)
}

// FormatBool returns "true" or "false" according to the value of b.
func FormatBool(b bool) string {
    if b {
        return "true"
    }
    return "false"
}

// AppendBool appends "true" or "false", according to the value of b,
// to dst and returns the extended buffer.
func AppendBool(dst []byte, b bool) []byte {
    if b {
        return append(dst, "true"...)
    }
    return append(dst, "false"...)
}
正文到此结束
本文目录