openlang

정의가 실행되기 전에 Smalltalk에서 클래스 찾기

이런 코드를 한꺼번에 실행하고 싶습니다:

BaseItem subclass: #FirstItem instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'DEMO2'.
FirstItem subclass: #SecondItem instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'DEMO2'.

각 줄을 따로 평가하지 않고요.

이렇게 하면 FirstItem이 선언되지 않았다는 오류가 납니다만, 다음 줄까지 실행이 진행될 때쯤이면 이미 선언되어 있을 텐데요.

어떻게 해결할 수 있을까요?

영어에서 번역원문 보기

이어지는 대화 2

서로의 근거를 따라
  1. 고유 링크

    클래스를 나중에 찾으려면 Smalltalk이라는 전역 사전을 살펴보세요 (인스펙터와 브라우저로 열어 볼 수 있어요). classNamed:이나 at: 같은 접근자를 쓰면 실행할 전체 표현식이 컴파일되는 시점에 아직 이름이 없는 클래스도 나중에 가져올 수 있어요.

    BaseItem subclass: #FirstItem instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'DEMO2'.
    (Smalltalk classNamed: #FirstItem) subclass: #SecondItem instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'DEMO2'.
    영어에서 번역원문 보기
  2. 고유 링크

    일부 방언에서는 Symbol이 asClass 메시지를 이해하므로 이렇게 쓸 수 있어요:

    BaseItem subclass: #FirstItem instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'DEMO2'.
    #FirstItem asClasss subclass: #SecondItem instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'DEMO2
    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. Godot 3.3의 GDScript에서 일일이 나열하지 않고 enum 항목을 무작위로 고르기?

    GDScript에서 enum을 이렇게 선언했어요: 가능한 모든 변형을 나열하지 않고 enum 변형을 무작위로 고르고 싶어요. 나중에 변형을 더 추가해도 무작위로 선택하는 코드를 수정하지 않도록요. 이런 방법을 시도해 봤어요:…

    답글 2최근 활동 gdscript
  2. Nim 나머지 연산 문법

    Nim에서는 나머지를 어떻게 표현하나요? cell % 7 == 0를 쓰면 undeclared identifier: '%'가 나옵니다 Google로 검색해도 SO를 찾아봐도 답을 찾지 못했습니다.

    답글 2최근 활동 nim
  3. APL 함수에서 결과 반환하기

    함수 실행이 끝나면 어떤 값을 반환하게 하려면 어떻게 하나요? 예를 들어 이런 것이 있습니다: ROUTINE N ? N ⍴ 12 //이것은 1부터 12까지의 난수 N개를 만듭니다 (N은 함수의 인수입니다). 함수의 결과를 돌…

    답글 2최근 활동 apl