randWord
일상 단어를 만들어 count개만큼 문자열로 돌려줍니다. 동물, 사물, 자연, 개념을 비롯한 29개 테마를 9개 언어로 제공하며, 사람 이름은 쓰지 않습니다. output: 'detail'을 주면 각 단어의 언어와 테마까지 알려 줍니다.
randNickname이 조합해서 쓰는 것과 같은 단어 풀이며, 여기서는 아무것도 덧붙이지 않은 단어를 그대로 돌려줍니다.
import { randWord } from 'randino';
randWord();
// ['Lantern']import 'package:randino/randino.dart';
randWord();
// [Lantern]from randino import rand_word
rand_word()
# ['Lantern']옵션
모든 옵션은 선택 사항이며, 기본값은 위의 인자 없는 호출이 사용하는 값입니다.
| 옵션 | 타입 | 기본값 | 설명 |
|---|---|---|---|
language | WordLanguageOptionWordLanguage?WordLanguageOption | 'all'null"all" | 생성할 단어의 언어. 생략하면 언어마다 하나씩 골라 모두 섞습니다. |
theme | WordThemeOptionWordTheme?WordThemeOption | 'all'null"all" | 단어의 주제. 테마마다 같은 함수가 하나씩 따로 있습니다. |
count | numberintint | 1 | 돌려줄 단어 개수. 0 … 10000으로 제한됩니다. |
realism | RandRealismRandRealismRandRealism | 'real'RandRealism.real"real" | real은 풀에서 단어를 뽑고, invented는 그 언어처럼 읽히기만 하는 단어를 만들어냅니다. mixed는 단어마다 정합니다. |
vocabulary | RandVocabularyRandVocabularyRandVocabulary | 'full'RandVocabulary.full"full" | basic은 누구나 매일 쓰는 단어만, common은 거기에 어른이 이따금 쓰는 단어까지, full은 풀에 있는 모든 단어를 씁니다. |
minLengthminLengthmin_length | numberint?int | None | 단어 풀 | 최소 글자 수. 생략하면 단어 풀이 담고 있는 범위를 따릅니다. |
maxLengthmaxLengthmax_length | numberint?int | None | 단어 풀 | 최대 글자 수. 풀이 만족시킬 수 없으면 가장 가까운 단어로 답합니다. |
startsWithstartsWithstarts_with | stringString?str | —null"" | 이 글자로 시작하는 단어만 남깁니다. |
unique | booleanboolbool | falsefalseFalse | 같은 단어를 두 번 돌려주지 않습니다. 풀이 바닥나면 요청보다 적게 돌아옵니다. |
random | () => numberRandom?Callable[[], float] | None | —nullNone | 무작위성을 어디서 가져올지. 기본값은 각 언어의 일반 난수 생성기입니다. |
output | RandOutputRandOutput | 'value'"value" | 문자열, 또는 단어마다 WordDetail 하나. |
같은 표가 아래 29개 페이지에도 들어 있어서, 30번 따로 쓰는 대신 컴포넌트 하나로 그립니다. language와 theme을 뺀 나머지는 이 패키지의 모든 생성 함수가 공통으로 받는 옵션이며, 어느 함수에서든 같은 뜻입니다.
Dart에는 output이 없습니다. 거기서는 상세 출력이 randWordDetails입니다.
테마마다 함수가 하나씩
테마는 옵션이면서 함수이기도 합니다. 29개 각각이 테마를 미리 정해 둔 randWord이고, 문서 페이지도 하나씩 있습니다. 각 테마가 담고 있는 단어는 테마에 있습니다.
randAnimal · randObject · randNature · randPlant · randGem · randConcept · randMyth · randJob · randMusic · randPlace · randFood · randSport · randVehicle · randProduct · randColor · randFinance · randTech · randWeather · randSpace · randTime · randEmotion · randBody · randClothing · randTool · randDrink
import { randAnimal, randFood, randGem } from 'randino';
randAnimal({ language: 'en', count: 3 }); // ['Otter', 'Falcon', 'Lynx']
randFood({ language: 'en', count: 2 }); // ['Dumpling', 'Cocoa']
randGem({ language: 'en', count: 2, unique: true }); // ['Obsidian', 'Bronze']import 'package:randino/randino.dart';
randAnimal(language: WordLanguage.en, count: 3); // [Otter, Falcon, Lynx]
randFood(language: WordLanguage.en, count: 2); // [Dumpling, Cocoa]
randGem(language: WordLanguage.en, count: 2, unique: true); // [Obsidian, Bronze]테마 함수는 List<String>만 돌려줍니다. 상세 출력이 필요하면 randWordDetails에 테마를 넘기세요. Dart에는 오버로드가 없어서, 이것만을 위해 함수를 스물아홉 개 더 두는 것은 과합니다.
from randino import rand_animal, rand_food, rand_gem
rand_animal(language="en", count=3) # ['Otter', 'Falcon', 'Lynx']
rand_food(language="en", count=2) # ['Dumpling', 'Cocoa']
rand_gem(language="en", count=2, unique=True) # ['Obsidian', 'Bronze']theme을 뺀 randWord의 모든 옵션을 그대로 받습니다.
길이
minLengthminLengthmin_length와 maxLengthmaxLengthmax_length를 생략하면 단어 풀이 실제로 담고 있는 범위를 따릅니다. 그 값을 알려 주는 것이 wordLengthRange입니다. 풀이 만족시킬 수 없는 범위를 요청하면 단어를 자르는 대신 가장 가까운 단어로 답합니다.randWord({ language: 'en', theme: 'animal', maxLength: 4, count: 4 });
// ['Cat', 'Ant', 'Frog', 'Carp']
randWord({ language: 'en', minLength: 9, count: 3 });
// ['Saxophone', 'Spaghetti', 'Spaceship']randWord(language: WordLanguage.en, theme: WordTheme.animal, maxLength: 4, count: 4);
// [Cat, Ant, Frog, Carp]
randWord(language: WordLanguage.en, minLength: 9, count: 3);
// [Saxophone, Spaghetti, Spaceship]rand_word(language="en", theme="animal", max_length=4, count=4)
# ['Cat', 'Ant', 'Frog', 'Carp']
rand_word(language="en", min_length=9, count=3)
# ['Saxophone', 'Spaghetti', 'Spaceship']만들어낸 단어
realism은 세 단계입니다. real은 풀에서 뽑고, invented는 그 언어처럼 읽히기만 하는 단어를 만들어내며, mixed는 단어마다 판단합니다.
randWord({ language: 'en', realism: 'invented', count: 4 });
// ['Sterath', 'Lisleen', 'Kaezan', 'Mibaeth']
randWord({ language: 'en', realism: 'mixed', count: 4 });
// ['Blorin', 'Meadow', 'Tavren', 'Compass']randWord(language: WordLanguage.en, realism: RandRealism.invented, count: 4);
// [Sterath, Lisleen, Kaezan, Mibaeth]rand_word(language="en", realism="invented", count=4)
# ['Sterath', 'Lisleen', 'Kaezan', 'Mibaeth']만들어낸 단어가 우연히 실제 단어를 이루기도 합니다. 음절 템플릿이 Snake를 만들어내는 일이 있는데, 그럴 때는 테마를 감추지 않고 그대로 보고합니다.
흔한 단어
풀에는 사과와 탈륨, 의사와 통메장이, apple과 thallium이 함께 들어 있어서, 전체에서 뽑으면 일상 단어만큼이나 전문 용어가 나옵니다. vocabulary는 단어가 얼마나 흔해야 하는지 정합니다. basic은 거의 모든 화자가 쓰고 아이도 아는 일상 단어, common은 거기에 어른이 알고 이따금 쓰는 단어까지, full은 풀에 있는 모든 단어이며 기본값입니다. 각 단계는 아래 단계를 포함하므로, common은 중간 단어만 모은 것이 아니라 드문 단어를 뺀 풀입니다.
randWord({ language: 'ko', vocabulary: 'basic', count: 5 });
// ['사과', '고양이', '의사', '컴퓨터', '가위']
randWord({ language: 'en', theme: 'gem', vocabulary: 'basic', count: 4 });
// ['Gold', 'Diamond', 'Pearl', 'Silver']randWord(language: WordLanguage.ko, vocabulary: RandVocabulary.basic, count: 5);
// [사과, 고양이, 의사, 컴퓨터, 가위]rand_word(language="ko", vocabulary="basic", count=5)
# ['사과', '고양이', '의사', '컴퓨터', '가위']등급은 언어마다 그 언어의 단어를 두고 매긴 판단입니다. 탈륨이 드문 것은 탈륨이 낯선 물질이어서가 아니라 아무도 그 말을 입에 올리지 않기 때문입니다. 모든 테마에 기본 단어가 몇 개씩은 남아 있어서 randGem({ vocabulary: 'basic' })도 답을 냅니다. randNickname은 기준이 되는 명사에, randSentence는 문장의 모든 명사에 같은 옵션을 받습니다. 문장은 읽히는 것이므로 randSentence의 기본값만은 full이 아니라 common입니다. 호출자가 요구한 단어, 만들어낸 단어, 사람 이름은 풀의 단어가 아니므로 등급이 없습니다.
상세 출력
randWord({ language: 'en', theme: 'plant', output: 'detail' });
// [{ word: 'Cedar', language: 'en', theme: 'plant' }]randWordDetails(language: WordLanguage.en, theme: WordTheme.plant).first;
// WordDetail(Cedar, en, plant)Dart에는 오버로드도 유니온 타입도 없으므로 상세 출력은 별도 함수입니다.
rand_word(language="en", theme="plant", output="detail")
# [WordDetail(word='Cedar', language='en', theme='plant')]풀의 어떤 단어와도 맞지 않는 만들어낸 단어라면 theme은 null입니다.
함께 보기
- 테마 — 29개 테마와 테마마다 있는 함수.
wordLengthRange— 언어의 단어 풀이 담고 있는 길이 범위.randNickname— 같은 단어를 조합해서 쓰는 생성 함수.randModifier— 이미 만들어 둔 단어 앞에 수식어를 붙이는 함수.