저는 scala에 익숙하지 않고 기본값이 아닌 값으로 초기화되는 소수의 변수 (때로는 none) 만 필요로하는 클래스가 있습니다. 처음에는 빌더 클래스를 사용하여이 작업을 수행했지만, 생성자에서 스칼라의 기본값을 사용하는 것이 더 효율적이라는 것을 깨달았습니다. 문제는 꽤 끔찍 있도록 기본 값의 일부가,스칼라 : 단순하지 않은 기본값을 사용하는 방법?
처럼val name: String = "Party-" + LocalDateTime.now.atZone(ZoneId.systemDefault()).toEpochSecond
확인 좀 더 복잡한 String = "name"
또는 Int = 1
등 실제 코드를 필요로보다 있다는 것입니다,하지만에 고유 한 이름 요구 사항을 만족시킬 것이다 그 변수와 작동합니다.
private val now: LocalDateTime = LocalDateTime.now()
private val dateFormat: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
private var startDate = dateFormat.format(now)
private var startHour = now.getHour
을 그러니 확실히 내가 기본값으로 모든 코드를 사용할 수 없습니다, 형식화 된 날짜와 기본값은 오늘부터 할 필요가 만족 무언가를 필요로
내가 다른 변수가
이전에 초기화 된 변수를 공유하므로이 두 변수에 한 줄을 사용할 수 없으므로 어떻게 구현해야합니까?startDate
감사합니다.
질문이 명확하지 않습니다. "분명히 모든 코드를'startDate'의 디폴트 값으로 사용할 수는 없지만, 이것에 대해서는 전혀 명백하지 않습니다. 나는 이것이 숙제라고 추측하고 있으며, 복합 표현식을 사용하여 변수를 초기화 할 수 없다는 제약이 있습니까? 아니면 회사 스타일 가이드가 금지하고 있습니까? 어느 쪽이든, 당신은 우리에게 질문에 * 정확하게 * 그 제한이 무엇인지를 말해야합니다. 왜냐하면 그것들은 결코 명백하지 않기 때문입니다. –
충분히 공정하여 제 질문이 업데이트되었습니다. 물론 복합 표현을 사용하는 것이 가능합니다. 위에서 언급 한 것처럼 다른 변수를 사용할 수 있습니다. 더 좋은 방법이 될 것 같아요. 그럴 수 없으면 빌더를 사용해야합니다. 단일 변수의 –