다음 코드에서 "warning :`* '인수로 해석 된 접두사"를 제거 할 수 있습니까? 나는 위의 코드를 실행하면 hash = {"a" => 1,
"b" => 2,
"s" => 3,}
if "string".start_with? *hash.keys then
puts "ok"
else
puts "ng"
end
double splat을 사용하여 해시 변수를 확장하려고 시도하는 이상한 동작이 발생했습니다. 왜 이런 일이 일어나고 있는지 모르겠다. 내 루비 버전 이런 일이 왜 class MyClass
def my_method; end
end
MyClass.new.my_method(*[]) # returns nil
MyClass.new.my_metho
여러 인수를 취하는 메서드를 재정의하는 하위 클래스가있는 기본 클래스가 있습니다. class Parent
def foo *bar
end
end
class Child < Parent
def foo bar, baz
end
end
잘 작동합니다. def foobar *foo_args
foo foo_args
"포괄적 인 루비 프로그래밍 과정" 전자 북 하위 클래스 메소드가 부모 메소드를 확장 할 때가 있습니다. 나는 그것이 어떻게 작동하는지 완전히 인식하지 오전 : class Parent
def initialize(foo:, bar:)
@foo = foo
@bar = bar
end
end
class Child < Par
함수 호출에 사용할 매개 변수 목록을 만들려고합니다. 함수 호출은 다음과 같습니다 : render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
나는 다음과 같은 시도 : 매개 변수 목록을 채우는 플랫 연산자 ( *)를 사용하여 희망 params = [key1: value1]
params.p
로 플랫을 사용합니다. 분명히 테스트를 실행하면 "hello"가 반환됩니다. 하지만 테스트에 인수를 전달하면 ... test("this argument")
어떻게 테스트 메서드 내에서 해당 메서드를 호출 할 수 있습니까? 나는 이름없이 튄 자국에 대해서 혼란스러워하고있다. 어떻게 작동합니까?
PowerShell에서 해시 테이블 변수에 여러 개의 매개 변수를 래핑 한 다음 대신 @이라는 접두사가 붙은 변수를 전달하여 함수 또는 cmdlet에 여러 매개 변수를 전달할 수 있습니다. 다른 객체 (즉, 하나의 라이너)의 속성 인 해시 테이블로 표시 할 수 있습니까? 예 : 아래에 나는 Demo으로 표시하기 전에 다른 변수에 먼저 속성 (testInt,
에 비해 속성 작가 다르게 행동 I가 내가 그들의 이름을 무시하고 같은 동작을한다고 생각 다음 두 가지 방법 : def a=(*params)
params
end
def b(*params)
params
end
그러나 사실 내가 그들을 사용 를 a=(1) # => 1
b(1) # => [1]
(a=1) == b(1) # => f
이유는 다음과 같은 작업 않습니다 Get-WmiObject -class Win32_OperatingSystem
그리고 이것은 또한 작동합니다 $params = @{class='Win32_OperatingSystem'}
Get-WmiObject @params
는하지만이 작동하지 않습니다 Get-WmiObject @{class='Win32_Operat
아래의 Split-Path에 대한 인수가 올바르지 않으며 $delZipExe이어야합니다. 이렇게하면 $delZipCmd 해시를 아무 것도 설정하지 않습니다. $delZipCmd 해시에서 WorkingDirectory 값을 아무 것도 설정하지 않을 것으로 예상됩니다. 왜 이런 일이 발생합니까? Split-Path의 매개 인자의 확인 이후 Set-StrictM