정적 및 인스턴스 메소드에 대한 토론에서 항상 Sqrt()
정적 메소드 대신 숫자 유형의 인스턴스 메소드 여야 한다고 생각 합니다. 왜 그런가요? 그것은 분명히 가치에 작용합니다.
// looks wrong to me
var y = Math.Sqrt(x);
// looks better to me
var y = x.Sqrt();
많은 언어에서와 같이 값 유형에는 인스턴스 메소드가있을 수 있습니다 ToString()
.
의견에서 몇 가지 질문에 대답하려면 왜 1.Sqrt()
합법적이지 않아야합니까? 1.ToString()
입니다.
일부 언어는 값 유형에 대한 메소드를 허용하지 않지만 일부 언어는 메소드를 가질 수 있습니다. Java, ECMAScript, C # 및 Python ( __str__(self)
정의 된)을 포함하여 이에 대해 이야기하고 있습니다. 동일 같은 다른 함수를 적용 ceil()
, floor()
등등
Sqrt(x)
보인다고 생각합니다. 만약 그것이 어떤 언어에서 클래스 앞에 함수를 추가한다는 것을 의미한다면 나는 그것에 동의 합니다. 이 경우 했다 인스턴스 메서드 다음 그것의 것을 나타 내기 위해 더 적합 할 것이다 반환 값을하기보다는 수정 인스턴스를. x.Sqrt()
x.GetSqrt()
1.sqrt()
유효?