【问题标题】:How Two Iterate Over Two Arrays In A Strongly Typed Language?如何在强类型语言中迭代两个数组?
【发布时间】:2011-12-03 16:15:05
【问题描述】:

我在很多语言中都遇到过这个问题,但我从未碰巧追问过这个问题。我只搜索了问题,但很少得到结果。

我想通了,但我只是想确保这是最好的方法。

让我们举个例子:(我会尽可能通用,希望它适用于每种语言。)

firstArray[0] = 1;
firstArray[1] = 2;
firstArray[2] = 3;

secondArray[0] = 'a';
secondArray[1] = 'b';
secondArray[2] = 'c';

现在让我们想象一下这两个数组是否都是无穷无尽的。

如果我想得到这些结果:

1a
2b
3c

那我可以这样写吗?:

for (int i=0; i < 3; i++)
{
print(firstArray[i] + secondArray[i]);
}

【问题讨论】:

  • 是的,您可以使用任何语言进行此操作。
  • 是的,尽管您需要修正语法中的拼写错误;)
  • 你为什么认为这会是个问题?

标签: arrays strong-typing


【解决方案1】:

是的,只要两个数组都不短于您正在迭代的范围,并且两者都包含可以使用 + 运算符(有或没有强制转换)相互添加的类型,您就可以这样做。

【讨论】:

    【解决方案2】:

    您的问题的标题表明这是否可以在强类型语言中实现。这是 Wikipedia 提到的强类型 http://en.wikipedia.org/wiki/Strong_typing(查看连接字符串和整数的示例)。如果这是您要问的,那么答案是否定的。您不能在强类型语言中执行此操作。

    例如你不能在 Python 中做到这一点(我相信 Python 是强类型的)

    a = [1,2,3] b = ['a','b','c'] for i in xrange(len(a)): print (a[i]+b[i])

    您必须将类型转换为运算符的通用兼容类型。

    a = [1,2,3] b = ['a','b','c'] for i in xrange(len(a)): print (str(a[i]) + b[i])

    这在 C 和 C++ 中也是不可能的。

    【讨论】:

      猜你喜欢
      • 2012-09-28
      • 2011-01-22
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 2021-04-25
      相关资源
      最近更新 更多