sách gpt4 ai đã đi

Không thể chuyển đổi giá trị 'System.Object[]' của kiểu 'System.Object[]' thành kiểu 'System.Char' - PowerShell Copy

In lại 作者:行者123 更新时间:2023-12-02 23:22:30 31 4
mua khóa gpt4 Nike

我刚刚开始使用 powershell,我正在制作一个非常简单的加密功能。我想获取字符串中的每个字符,将其转换为 int 并添加一个选定的数字,然后将其转换回一个字符。

这工作正常:

function encrypt($a){
$letter=[int][char]$a
$letter=$letter+1;
return [char]$letter
}
encrypt("test)

但这不会:
function encrypt($a, $key){
$letter=[int][char]$a
$letter=$letter+$key;
return [char]$letter
}
encrypt("test", 1)

它给了我标题中的错误..我错过了什么?

1 Câu trả lời

您以错误的方式传递参数:

encrypt "t" 1

作品。

Powershell 会处理 ("t", 1)作为单个参数。

由于您没有将任何参数指定为强制参数,powershell 将仅使用您提供参数的顺序。所以第一个参数give用于填充变量 $a .您还可以按任何顺序使用名称调用参数:
encrypt -key 5 -a a
f

此外,powershell 无法将整个字符串(例如“test”)解析为字符,它始终需要是单个字符。如果您希望您的函数能够获取整个字符串,您可以执行以下操作:
function encrypt($word,$offset){
foreach ($letter in $word.toCharArray()) {
$letter=[int]$letter+$offset;
$return = $return + [char]$letter
}
return $return
}

这应该提供您正在寻找的内容:
encrypt "test" 2
vguv

关于powershell - 无法将 "System.Object[]"类型的 "System.Object[]"值转换为 "System.Char"类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112651/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com