gpt4 book ai didi

powershell - PowerShell 是强类型语言吗?

转载 作者:行者123 更新时间:2023-12-03 21:16:36 24 4
gpt4 key购买 nike

PowerShell 绝对属于动态语言的范畴,但它会被视为强类型吗?

最佳答案

该术语存在一定程度的混淆。 This article解释了一个有用的类型系统分类法。

PowerShell 是动态的、隐式类型的:

> $x=100
> $x=dir

没有类型错误 - 变量可以在运行时更改其类型。这就像 Python , Perl , JavaScript但不同于 C++ , Java , C# , 等等。

然而:
> [int]$x = 100
> $x = dir
Cannot convert "scripts-2.5" to "System.Int32".

因此,如果需要,它还支持显式键入变量。但是,类型检查是在运行时而不是编译时完成的,因此它不是静态类型的。

我看到有人说 PowerShell 使用类型推断(因为您不必声明变量的类型),但我认为这是错误的词。类型推断是在编译时进行类型检查的系统的一项功能(如 C# 中的“ var”)。 PowerShell 仅在运行时检查类型,因此它可以检查实际值而不是进行推理。

但是,有一些自动类型转换正在进行:
> [int]$a = 1
> [string]$b = $a
> $b
1
> $b.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object

因此,某些类型会即时转换。根据大多数定义,这将使 PowerShell 成为一种弱类型语言。它肯定比例如更弱。 Python(几乎?)从不即时转换类型。但可能不像 Perl 那样弱,它几乎可以根据需要转换任何东西。

关于powershell - PowerShell 是强类型语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/115643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com