根据这段代码,这种语言是一种打字或无类型的语言?

时间:2018-06-02 17:04:18

标签: computer-science typing type-systems strong-typing static-typing

我在我的硬件中有这个代码而且它没有提到它是什么语言,而且问题在我不熟悉的代码下面,所以我有点困惑,我很乐意得到一些帮助回答或帮助解决问题:

x = 3; 
s = read_string_input(); 
if (isnumber(s) and strToInt(s) > 0) 
x = s + 1.3; 
else 
x = "negative input";
print(x);

问题是:

  1. 是一种打字语言吗?

  2. 是强或弱的打字语言?

  3. 是动态还是静态语言?

  4. 是隐式还是显式输入?

1 个答案:

答案 0 :(得分:0)

  1. 由于isnumberx - 方法,它似乎是一种打字语言。在非类型语言中,您无需转换值即可使用它们。

  2. 这是一种弱类型语言,因为似乎不需要向任何其他类型转换任何内容,而是可以在必要时分配值。

  3. 它似乎是一种动态语言,因为该对象不一定必须事先属于某种类型。

  4. 它看起来像是一种隐式类型转换,因为类型似乎是从它们预期包含的值中扣除的。

  5. 顺便说一句:它看起来有点像JavaScript(除了 const let ,在定义变量时也不使用 var

    仍然:摘录看起来有点小,以便能够确定。

    例如,变量isnumber可以被定义为一种类型,它允许字符串和整数相同,strToInt以及struct MyFixture: public ::testing::Test { }; template <typename param> struct MyFixtureWithParam: public MyFixture, public ::testing::WithParamInterface<param> { }; using MyFixtureWithNumber = MyFixtureWithParam<int>; TEST_P(MyFixtureWithNumber, Test1) { std::cout << "Test1 with param: " << GetParam() << std::endl; } INSTANTIATE_TEST_CASE_P(Test1, MyFixtureWithNumber, ::testing::Values(0,3)); TEST_P(MyFixtureWithNumber, Test2) { std::cout << "Test2 with param: " << GetParam() << std::endl; } INSTANTIATE_TEST_CASE_P(Test2, MyFixtureWithNumber, ::testing::Values(5, 7)); 可以包含instanceof检查和转换器(例如,字符串并创建一个整数以便返回它而不是隐式返回一个整数。)

    来源:知识,Google,https://pythonconquerstheuniverse.wordpress.com/2009/10/03/static-vs-dynamic-typing-of-programming-languages/https://en.wikipedia.org/wiki/Talk%3ATyped_and_untyped_languages