SomethingLikeThis
ちょっとした背景: に変換する短いメソッドを書いていsomething_like_this
ます。.ToCharArray
ofでforeach ループを使用していましたが、 and$name
などの入力に対して期待どおりに機能しませんでした。前の文字を確認できるように、for ループを選択しました。明確にするために、コードのその部分についてのヘルプは必要ありません...読み進めてください。BIOS
PCIDevices
function Get-FileName {
param([string] $name)
$out = ''
$chars = $name.ToCharArray()
for ($i = 0; $i -lt $chars.Length; $i++, $c = $chars[$i]) {
if ($c -ge 'A' -and $c -le 'Z' -and -not $out.Length -eq 0) {
$out += '_'
}
Write-Host $c
$out += $c.ToString().ToLower()
}
return $out;
}
Get-FileName "BIOS"
これが私に与えるエラーは次のとおりです。
Invalid assignment expression. The left hand side of an assignment operator needs to be something that can be assigned to like a variable or a property.
理想的にはfor ($i = 0; $i -lt $chars.Length; $c = $chars[$i++])
でもそれが原因でこんなことになってしまう
You cannot call a method on a null-valued expression.
At C:\Users\kylestev\Desktop\test.ps1:145 char:32
+ $out += $c.ToString <<<< ().ToLower()
B
I
O
b_i_o
私は Java と C# のバックグラウンドを持っているので、これが機能しないのはちょっと残念です。これをワンライナーとして機能させるための回避策を知っている人はいますか? ループの本体で値を割り当てる必要はありません$c
が、回避策がない場合は可能です。