Type inference 推断类型和动态类型

Type inference 推断类型和动态类型,type-inference,dynamic-typing,Type Inference,Dynamic Typing,在编程语言中,推断类型和动态类型之间有什么区别?我知道动态类型,但不知道动态类型与推断类型有何不同,以及如何区别?有人能举例说明吗?您可以动态更改数据类型,但推断类型在使用前不需要明确的数据类型声明。 推断类型=在编译时设置一次。实际上,推断出的部分只是一个节省时间的部分,因为如果编译器能够找到它,您不必键入类型名 类型推断通常与静态类型一起使用(如swift)() 动态类型=无固定类型->类型可以在运行时更改 静态和推断示例: var i = true; //compiler can in

在编程语言中,推断类型和动态类型之间有什么区别?我知道动态类型,但不知道动态类型与推断类型有何不同,以及如何区别?有人能举例说明吗?

您可以动态更改数据类型,但推断类型在使用前不需要明确的数据类型声明。

  • 推断类型=在编译时设置一次。实际上,推断出的部分只是一个节省时间的部分,因为如果编译器能够找到它,您不必键入类型名

    类型推断通常与静态类型一起使用(如swift)()

  • 动态类型=无固定类型->类型可以在运行时更改


静态和推断示例:

var i = true; //compiler can infer that i most be of type Bool
i = "asdasdad" //invalid because compiler already inferred i is an Bool!
等于

var i: bool = true; //You say i is of type Bool
i = "asdasdad" //invalid because compiler already knows i is a Bool!
==>如果编译器可以看到类型,则类型推断将保存您拼写的类型

但是如果它是动态的,那么它就可以工作(例如objC),因为类型仅基于运行时的内容

id i = @YES; //NSNumber
i = @"lalala"; //NSString
i = @[@1] //NSArray

静态和动态类型告诉您何时检查变量的类型。 静态类型在编译期间检查类型。动态类型在运行时(动态)检查类型


推断和清单关系到是否必须指定变量的类型。推断意味着语言将为您检测它。Manifest表示必须指定类型。

您是说推断类型=静态类型?是的。如果编译器能找到类型,它只会让你省去键入类型的麻烦。我没有得到它。但是在静态键入中,我们故意提供数据类型。你能为推断类型提供一些示例吗?编辑对你有帮助吗?否则请研究我提供的维基百科链接