max{max=v}elseifv"/> max{max=v}elseifv">
php 편집기 Apple은 다음과 같은 일반적인 오류 메시지를 분석하기 위해 왔습니다: "잘못된 연산: v > max(유형 매개변수 T 및 >는 비교할 수 없음)". PHP 언어로 프로그래밍할 때, 특히 유형 매개변수를 비교할 때 이 오류가 발생할 수 있습니다. 이 기사에서는 독자가 이 잘못된 작업을 더 잘 이해하고 해결할 수 있도록 이 오류의 원인과 이를 올바르게 처리하는 방법을 자세히 설명합니다. 비교할 수 없는 두 가지 유형을 비교합니다. 이 문제를 해결하는 열쇠는 비교된 유형이 비교 가능한지 확인하는 것입니다. 다음에서는 구체적인 솔루션을 단계별로 소개하겠습니다
package main import ( "fmt" ) func findMinMax[T comparable](arr []T) (min, max T) { for _, v := range arr { if v > max { max = v } else if v < min { min = v } } return min, max } func main() { arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} fmt.Println(findMinMax(arr)) }.
findminmax 함수가 제대로 작동할 것으로 예상했습니다.
해결 방법
t
类型参数使用了 comarable
约束。 comparable
的意思是:可比较。因此,您可以对该类型的值使用 ==
运算符。这并不意味着它们是有序的,这是使用 2d73dfacf92ffcf1e85bc65fe58d9c2e
주문한 제약조건은
에 있습니다. golang.org/x/exp/ 中定义constraints
包,请参阅 constraints.ordered
코드로 컴파일:
에서 사용해 보세요. 0 값으로 시작하기 때문에 잘못된 결과가 나옵니다.
0 값으로 유지됩니다.
min
和 max
,并且如果传递的切片中的所有值都大于或小于零值,则 min
或 max
간단한 수정은 전달된 슬라이스가 비어 있지 않은 경우 첫 번째 값으로 초기화하는 것입니다.
으아아아
min
和 max
이 결과는 다음과 같습니다(
에서 시도해 보세요): 으아아아 부동 소수점 유형을 사용하는 경우 다른 부동 소수점 숫자와의 순서가 지정되지 않으므로
값을 명시적으로 처리해야 합니다.위 내용은 잘못된 연산: v > max(유형 매개변수 T와 >는 비교할 수 없음)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!