为什么我不能"字符串".print()?

Dor*_*awk 7 ruby python

我对print()Python和Ruby(以及其他语言)的理解是它是一个字符串(或其他类型)的方法.因为它是如此常用的语法:

打印"嗨"

作品.

那么为什么不在"hi".print()Python或"hi".printRuby中工作呢?

guy*_*yrt 9

当你做类似的事情时"hi".print(),你暗示字符串对象"hi"有一个方法print.不是这种情况.相反,print是一个将字符串(或其他类型)作为输入的函数.

  • 这只适用于Python.Ruby没有函数,只有方法.在Ruby中,`print`是一种`IO`协议的方法,由例如`IO#print`和`StringIO #print`实现.另外,有一个方便的方法`Kernel#print`,它基本上调用`$> .print`,其中`$>`是一个表示默认输出IO流的全局变量(通常,`$>`指向`STDOUT` ,但它不必).正是这种方便的方法让你只能说'打印'嗨'而不是'$>.打印'嗨'或`STDOUT.print'嗨'. (2认同)