就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
我注意到像 Java 这样的语言有一个 char 原语和一个 string 类。其他语言如 Python 和 Ruby 只有一个字符串类。这些语言使用长度为 1 的字符串来表示一个字符。
我想知道这种区别是否是由于历史原因。我了解直接影响 Java 的语言具有 char 类型,但没有字符串。字符串改为使用 char* 或 char[] 形成。
但我不确定这样做是否有实际目的。我也很好奇某种方式在某些情况下是否比另一种方式更具优势。
为什么像 Java 这样的语言区分 char 原语和 string 类,而像 Ruby 和 Python 这样的语言不区分?
肯定有一些设计方面的考虑,无论是约定、效率、清晰度、易于实现等。可以这么说,语言设计者真的只是从帽子里挑选了一个字符表示吗?
最佳答案
最重要的是,这正是语言设计者决定的方式。很难比这更进一步。
然而,关于 C 的一点,它通常被认为是一种低级语言,因为它的语法更准确地反射(reflect)了正在执行的数据和任务的性质。将字符视为字符串将是一个抽象级别,这将是 C 不具有的特征。它会使隐藏的数据变得不太清楚。当您只需要一个角色时,它几乎肯定会增加开销。
请注意,C 类型语言确实支持单字符串,因此在我看来,您确实拥有两全其美的优势。
关于java - 为什么像 Java 这样的语言区分字符串和字符,而其他语言则不区分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010360/