string类型转bool类型_Go 类型的 String() 方法和格式化描述符
当定义了一个有很多方法的类型时,十之八九你会使用 String()
方法来定制类型的字符串形式的输出,换句话说:一种可阅读性和打印性的输出。如果类型定义了 String()
方法,它会被用在 fmt.Printf()
中生成默认的输出:等同于使用格式化描述符 %v
产生的输出。还有 fmt.Print()
和 fmt.Println()
也会自动使用 String()
方法。
我们使用第 4 节中程序的类型来进行测试:
示例 22 method_string.go:
package mainimport ("fmt""strconv"
)type TwoInts struct {a intb int
}func main() {two1 := new(TwoInts)two1.a = 12two1.b = 10fmt.Printf("two1 is: %vn", two1)fmt.Println("two1 is:", two1)fmt.Printf("two1 is: %Tn", two1)fmt.Printf("two1 is: %#vn", two1)
}func (tn *TwoInts) String() string {return "(" + strconv.Itoa(tn.a) + "/" + strconv.Itoa(tn.b) + ")"
}
输出:
two1 is: (12/10)
two1 is: (12/10)
two1 is: *main.TwoInts
two1 is: &main.TwoInts{a:12, b:10}
当你广泛使用一个自定义类型时,最好为它定义 String()
方法。从上面的例子也可以看到,格式化描述符 %T
会给出类型的完全规格,%#v
会给出实例的完整输出,包括它的字段(在程序自动生成 Go
代码时也很有用)。
备注
不要在 String()
方法里面调用涉及 String()
方法的方法,它会导致意料之外的错误,比如下面的例子,它导致了一个无限迭代(递归)调用(TT.String()
调用 fmt.Sprintf
,而 fmt.Sprintf
又会反过来调用 TT.String()
...),很快就会导致内存溢出:
type TT float64func (t TT) String() string {return fmt.Sprintf("%v", t)
}
t. Stri
ng()
string类型转bool类型_Go 类型的 String() 方法和格式化描述符相关推荐
- PHP 数据类型划分(8种)、获取数据(变量)的类型函数、单引号和双引号的字符串区分转义符、定界符、拓展
首先,我们来看看八种数据类型划分有哪些? 数据类型划分: 基本类型(标量类型): 整数类型:int integer 浮点数类型:float double 字符串类型:string 布尔类型:bo ...
- 4-C++ 中string类、bool类型、模板、array数组、vector向量的基础知识
目录 继续C++ ------3 ++操作符的友元函数重载 ++操作符的成员函数重载 赋值运算符重载 类型转换运算符 运算符重载注意事项 string类 bool类型的练习 模板 1.函数模板 2.类 ...
- java.lang.date_无法将java.lang.String类型的值转换为必需类型java.util.Date
from date: to date: Trouver 这是控制器代码部分: @RequestParam(name = "d1", defaultValue = "190 ...
- protobuf string类型_Protobuf3 使用其他消息类型
Protobuf3 使用其他消息类型 您可以使用其他消息类型作为字段类型.例如,假设您希望在每个SearchResponse消息中包含Result消息,为此,您可以在.proto中定义结果消息类型,然 ...
- 【spring boot】Controller @RequestMapping 数据绑定:接收 Date 类型参数时遇错,将 String 类型的参数转换成 Date 类型
前言 spring boot 2.1.1.RELEASE 遇错 Failed to convert value of type 'java.lang.String' to required type ...
- java integer引用传递_在java中String,对象,Integer(包装类型的)关于引用传递还是值传递...
场景: 大家都知道基本的数据类型,int,float等等这种是按值传递的.但是对于String,对象,Integer是怎样传递呢? 原理知识: 如果参数类型是原始类型,那么传过来的就是这个参数的一个副 ...
- java integer 值传递_在java中String,对象,Integer(包装类型的)关于引用传递仍是值传递...
场景: 你们都知道基本的数据类型,int,float等等这种是按值传递的.可是对于String,对象,Integer是怎样传递呢?java 原理知识: 若是参数类型是原始类型,那么传过来的就是这个参数 ...
- java中的string类型_Java中的字符串类型(String)
String 字符串是一个引用数据类型,字符串都是对象. String特性:1.在程序中出现的字符串字面量(常量),在程序中运行时会以对象的形式保存在JVM内存的字符串池中,并且所有的这些字符串字面量 ...
- java字段描述符_Java 的方法签名与字段类型表示-[Ljava.lang.String;
我们什么时候会接触到 Java 的方法签名呢?在进行 JNI 调用时,还有在看方法重载时.重载的方法是有不同的方法签名的,而是不区分返回值,而实际方法签名还揉入了返回值类型的,还有就是 javap - ...
最新文章
- 深入理解DOM事件类型系列第六篇——加载事件
- int整数型转换char*字符串
- android 获取 service 信息
- canvas 轮播图片
- Intel® Media Server Studio Support
- 【问题】windows网络问题快速诊断方法或工具。终于调通了MQTT,论坑爹的windows防火墙!...
- [云炬创业基础笔记]第九章企业的法律形态测试1
- 【BZOJ-4245】OR-XOR 按位贪心
- 喷喷计算机语言掌握的程度
- python通过文件路径读取图片
- matlab画直方图_直方图规定化+暗通道去雾 python
- stata15中文乱码_一次性解决Stata中文乱码问题
- Helix QAC软件下载安装使用试用
- Windows如何清理C盘的缓存文件和删除恶意软件
- Python3,多线程爬取某瓣小电影~ ~
- 哪款运动蓝牙耳机好用、运动型蓝牙耳机推荐
- 高等数学知识点总结——导数定义及性质、微积分、泰勒展开、洛必达法则、函数单调性判断
- 测试Unity中常用代码的运行所需时间:循环和函数篇 #性能测试 # for,foreach,while循环 #委托事件
- 京东API、获得JD商品详情API调取数据部分代码展示
- 【前沿解读】斯坦福研究员论文-以太坊可逆交易标准ERC20/721R的机制、创新与局限