반응형

java 2111

이 null 검사와 비어 있지 않은 검사를 그루비로 작성하는 더 좋은 방법이 있습니까?

이 null 검사와 비어 있지 않은 검사를 그루비로 작성하는 더 좋은 방법이 있습니까? 일부 논리를 수행하기 전에 일부 코드에서 null / 빈 검사 를 수행해야합니다 . 내가 틀렸다고 생각하기 때문에 아래 항목이 있습니다 !members?.empty. 다음을 작성하는 훌륭한 방법이 있습니까? if (members && !members.empty) { // Some Work } 실제로 Groovier Way가 있습니다. if(members){ //Some work } members컬렉션 이면 모든 작업을 수행합니다 . Null 검사 및 빈 검사 (빈 컬렉션이로 강제 됨 false). 우박 그루비 진실 . :) !members.find() 이 문제를 해결하는 가장 좋은 방법은 위의 코드라고 생각합니다. G..

ProgramingTip 2020.10.07

IList를 반환하고 있습니다.

IList를 반환하고 있습니다. T [] 또는 List를 반환하는 것보다 나쁨? 다음과 같은 질문에 대한 대답 : List 또는 IList 는 항상 인터페이스를 반환하는 것이 컬렉션의 구체적인 구현을 반환하는 것보다 낫다는 데 동의하는 것입니다. 그러나 나는 이것으로 어려움을 겪고 있습니다. 인터페이스 인스턴스화는 불가능한 메서드가 인터페이스를 반환하는 경우 실제로 구현을 반환합니다. 두 가지 작은 방법을 작성하여 약간 실험했습니다. public static IList ExposeArrayIList() { return new[] { 1, 2, 3 }; } public static IList ExposeListIList() { return new List { 1, 2, 3 }; } 그리고 내 테스트 프로그..

ProgramingTip 2020.10.07

어디에서 문자, 숫자, 밑줄 및 대시 만 포함되어 있는지 확인하십시오.

어디에서 문자, 숫자, 밑줄 및 대시 만 포함되어 있는지 확인하십시오. 보다 우아한 방법을 찾고 있습니다. 정규식은 아주 약간 코드로 트릭을 수행합니다. import re ... if re.match("^[A-Za-z0-9_-]*$", my_little_string): # do something here [편집] 아직 언급되지 않은 또 다른 솔루션이 대부분의 경우 지금까지 언급 된 솔루션을 능가하는 것입니다. string.translate를 사용하여 유효한 모든 유효한 문자를 교체하고 유효하지 않은 문자가 있는지 확인하십시오. 이 작업을 수행하기 위해 기본 C 함수를 사용하기 때문에 매우 빠르며 Python 바이트 코드가 거의 포함되지 않습니다. 분명히 성능이 전부는 아닙니다. 성능이 중요한 코드 경로에..

ProgramingTip 2020.10.07

git 브랜치를 리베이스하는 동안 타임 스탬프 변경

git 브랜치를 리베이스하는 동안 타임 스탬프 변경 커밋의 타임 스탬프가 뒤섞인 순서가 공개하기 전에 브랜치에서 공개하기 전에있었습니다. 차라리 그 사이에 몇 초만 있으면 모두 오늘이 되길 바랍니다. 분명히 타임 스탬프도하지 않을 것입니다. 그러나 나는 혼합 된 역사보다 시간적으로 그것을 선호합니다. 리베이스하는 동안 새 타임 스탬프를 만들도록 git에게 어떻게 지시를 받습니까? git rebase --ignore-date 필자의 경우 리베이스는 타임 스탬프를 CommitDate 값으로 변경했기 때문에 gitweb에서 몇 달 된 커밋이 4 일 전에 표시되었습니다. 날짜의 마지막 커밋을 찾아서 다음을 수행했습니다. $ git rebase --committer-date-is-author-date SHA 참고..

ProgramingTip 2020.10.05

Python : Python 함수를 지불해야합니까?

Python : Python 함수를 지불해야합니까? 먼저 조사했지만 내 질문에 대한 답을 찾지 못했습니다. Python에서 여러 함수를 지원합니다. 다음과 같은 것이 있습니다. files.py import common #common is a util class that handles all the IO stuff dir1 = 'C:\folder1' dir2 = 'C:\folder2' filename = 'test.txt' addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45] def func1(): c = common.Common() for i in range(len(addFiles)): c.createFiles(addFiles[i], filename, dir1) c.g..

ProgramingTip 2020.10.05

golang 인터랙티브 디버거가 있습니까?

golang 인터랙티브 디버거가 있습니까? [닫은] 제목은 거의 요약합니다. 나는 Go를 시도하고 있는데, 인터랙티브 환경에서 원하는만큼 중단 점을 설정하고 스텝 인 / 오버 / 아웃 할 수있는 것이 정말 그리워요. 나는 gdb를 사용하여 Go를 점 할 수 있다고 생각하고 중단을 위해 gdb에 사용하는 것과 비교하여 상당히 성가신 일입니다. 하나를 검색해 그런지 만 구문 강조가 많은 것이없는 플러그인이나 작은 IDE 만있는 수 있습니다. 업데이트 : 개인적으로 GDB가 작동하는 동안 나는 Go에서 그것을 사용하는 팬이 사용하는 것입니다. 좋은 대안에 대한 다른 답변을 확인하십시오. 예, 물론입니다 :) Go에는 디버거 (GDB)가 있습니다. 사용 방법에 대한 공식 안내 는 다음과 있습니다. (즉, 편집기..

ProgramingTip 2020.10.05

Go에서 파일 이름에 대한 규칙은 무엇입니까?

Go에서 파일 이름에 대한 규칙은 무엇입니까? Go에서 패키지 이름 지정 규칙을 사용할 수 있습니다. 단어 사이에 밑줄이없고 모두 소문자입니다. 이 규칙이 파일 이름에도 적용? Java 클래스에서했던 것처럼 하나의 파일에 하나의 물건을 넣은 다음의 파일 이름을 지정 했습니까? 현재 struct WebServer가 있으면 web_server.go 파일에 넣습니다. 따라야 할 몇 가지 지침이 있습니다. "."로 시작하는 파일 이름 또는 "_"는 이동 도구에서 무시됩니다. 접미사 _test.go가 있는 파일 은 go test도구에 의해서만 컴파일되고 실행됩니다 . OS 및 특정 특정 접미사가있는 파일은 자동으로 제약 조건을 존재합니다. 예를 들어 name_linux.goLinux name_amd64.go에서 ..

ProgramingTip 2020.10.05

Git 저장소의 기록 축소

Git 저장소의 기록 축소 꽤 큰 역사를 가진 git 프로젝트가 있습니다. 특히 프로젝트 초기에는 프로젝트에 상당히 많은 바이너리 리소스 파일이 있었지만 이제는 사실상 외부 리소스 파일이 제거되었습니다. 그러나이 파일이 이전에 커밋 되었기 때문에 리포지토리의 크기는> 200MB (현재 총 체크 아웃은 ~ 20MB)입니다. 우리가 생성하는 것은 히스토리를 "축소"하여 저장소가 이전보다 나중 개정에서 된 것처럼 보이도록 만드는 것입니다. 예를 들면 1-----2-----3-----4-----+---+---+ \ / +-----+---+---+ 저장소가 생성되었습니다. 큰 바이너리 파일 세트 추가 큰 바이너리 파일 세트 제거 새로운 의도 된 저장소 '시작' 따라서 특정 시점 이전에 프로젝트 기록을 잃고 싶습니..

ProgramingTip 2020.10.05

케이스 클래스 컴패니언에서 적용을 재정의하는 방법

케이스 클래스 컴패니언에서 적용을 재정의하는 방법 그래서 여기에 상황이 있습니다. 다음과 같이 케이스 클래스를 정의하고 싶습니다. case class A(val s: String) 클래스의 인스턴스를 만들 때 's'의 값이 항상 대문자가 개체를 정의하고 싶습니다. object A { def apply(s: String) = new A(s.toUpperCase) } 그러나 Scala가 apply (s : String) 메소드가 두 번 정의되어있어 작동하지 않습니다. 케이스 클래스 구문이 자동으로 정의한다는 것을 이해하지만 달성 할 수있는 다른 방법이 없습니까? 패턴 매칭에 사용하고 싶기 때문에 케이스 클래스를 고수하고 싶습니다. 충돌의 이유는 케이스 클래스가 똑같은 적용 () 메서드 (동일한 서명)를 제공..

ProgramingTip 2020.10.05

동시 프로그래밍의 맥락에서 "데이터 경합"과 "경쟁 조건"은 실제로 것입니다.

동시 프로그래밍의 맥락에서 "데이터 경합"과 "경쟁 조건"은 실제로 것입니다. 나는 종종 용어가 동시 프로그래밍의 맥락에서 사용되는 것을 발견합니다. 동일하거나 다른가요? 아니요, 그들은 같은 것이 아닙니다. 그들은 서로의 하위 집합이 아닙니다. 그들은 또한 서로에게 필요하거나 충분한 조건이 아닙니다. 데이터 경쟁의 정의는 매우 명확하게 검색을 자동화 할 수 있습니다. 데이터 경합은 서로 다른 스레드의 2 개의 명령어가 동일한 메모리 위치에 액세스 할 때 발생하며 , 액세스 중 적어도 이러한 하나는 쓰기이며 이러한 액세스 사이에 특정 순서를 요구 하는 동기화가 없습니다 . 경합 상태는 의미 오류입니다. 잘못된 프로그램 동작을 유발하는 이벤트의 타이밍 또는 순서에서 발생하는 결함입니다. 많은 조건은 데이터..

ProgramingTip 2020.10.05
반응형