Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Perl MongerのためのGoの始め方
Search
karupanerura
March 30, 2016
Technology
2
2.1k
Perl MongerのためのGoの始め方
Gotanda.pm #8
(2016-03-31 16:30) 37ページがおもいっきり間違っているので修正したものを後ほどUPします
karupanerura
March 30, 2016
Tweet
Share
More Decks by karupanerura
See All by karupanerura
GoでParserを書く
karupanerura
5
730
マイ隙間家具OSSたちのご紹介
karupanerura
2
220
1つの言語を原点に色々な言語を学ぶということ
karupanerura
4
2.7k
Javaの実装をPerlでテストする
karupanerura
0
990
Go Generics Overview
karupanerura
0
1.2k
Japan.pm 2021 開催まで至る道
karupanerura
0
1.9k
Perl MongersのためのAWS_CDK入門
karupanerura
0
88
Webシステムのパフォーマンス・チューニング
karupanerura
2
770
WebシステムのパフォーマンスとGo
karupanerura
3
1.6k
Other Decks in Technology
See All in Technology
まだ間に合う! 生成AIトレンド一挙おさらい & AWSのBedrockに入門しよう
minorun365
PRO
4
140
生成AI入門
shukob
0
110
Covariance, Contravariance & Diamond
alexdaubois
1
110
いまいまMySQL2024 @ OSC Nagaoka
sakaik
3
270
Automated Tests Now and Future @ SQiP Workshop Special Lecture 2024
teyamagu
PRO
2
440
俺とVSCode Python Debugger Extension
sat
PRO
1
140
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
0
390
JAWS-UG 事務局 の「これまで」から みんなで「ここから」を考えよう
miu_crescent
2
140
不要なリソースを自動で定期的に整理する方法 ~Sandboxアカウントのコストを削減しよう!~
amixedcolor
4
220
複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Rails import architecture for integration and transformation of multiple external service data
aiandrox
0
190
Grafana エコシステムの活用事例 on ABEMA
tetsuya28
5
710
40代後半で開発エンジニアからクラウドインフラエンジニアにキャリアチェンジし、生き残れる自信がようやく持てた話
iwamot
8
8k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Building Adaptive Systems
keathley
38
2.2k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Making the Leap to Tech Lead
cromwellryan
131
8.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
130k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
26
700
How to Ace a Technical Interview
jacobian
275
23k
Music & Morning Musume
bryan
46
6.1k
A Philosophy of Restraint
colly
203
16k
Become a Pro
speakerdeck
PRO
24
4.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Transcript
Perl MongerͷͨΊͷ Goͷ࢝Ίํ id:karupanerura Gotanda.pm #8
About me • Kenta SATO (id:karupanerura) • Perl/Go/Swift/Kotlin/Java/Crystal/C99/etc.. • Gotanda.pm
Author • Senior Engineer at Mobile Factory, Inc. • WebApp/iOS/Android/Operation/etc..
͓͜ͱΘΓ • ͝Γ͝Γॻ͍͍ͯΔਓ͚Ͱ͋Γ·ͤΜ • ஆ͔͍ϚαΧϦΛ͓ئ͍͠·͢ • PerlͱPerl6Ͱͳ͘Perl5Λࢦ͠·͢ • Perl6ͱPerl5ผͷݴޠͰ͢ʢຊʹʣ
͓͜ͱΘΓ • ݪཧతͷઆ໌Λ͢ΔͨΊʹϕετϓϥΫςΟ ε͔Β֎Εͨઆ໌Λ͢Δ߹͕͋Γ·͢ • ӏವΈʹ۪ͯ͠ʹॻ͔ͳ͍Ͱ͍ͩ͘͞ • ͜ͷʹϚαΧϦΛ͛ͳ͍Ͱ͍ͩ͘͞ • ΒΕͨΒٽ͖·͢ʢٽ͖·ͤΜʣ
ݟͨͷҧ͍
Perl
Go
※ஊͰ͢
ֶͿ
PerlΛֶͿ • ެࣜͷυΩϡϝϯτ: perldoc perlintro • ఆ൪ͷॻ੶: ॳΊͯͷPerlɺխͳPerlೖ • WEB+DB
PRESS: Perl Hackers Hub • ษڧձ: Perlೖֶࣜ
GoΛֶͿ • ެࣜͷυΩϡϝϯτ: A Tour of Go • ఆ൪ͷॻ੶: ϓϩάϥϛϯάݴޠGo
(ະൃച) • WEB+DB PRESS: Vol.82 ͡ΊͯͷGo • ษڧձ: (ఆظ։࠵͞Ε͍ͯΔͷͳͦ͞͏)
υΩϡϝϯτ
PerlͷυΩϡϝϯτ(ಡΈํ) • perldocίϚϯυ͔ΒͥΜͿಡΊΔ • perldocͷυΩϡϝϯτ: perldoc perldoc • perlͷυΩϡϝϯτ: perldoc
perl (࣍) • metacpan.org perldoc.jp ͳͲͰಡΊΔ
GoͷυΩϡϝϯτ(ಡΈํ) • ݴޠͷυΩϡϝϯτ: https://golang.org/doc/ • ϞδϡʔϧͷυΩϡϝϯτ: godoc.org • godocίϚϯυͰಡΊΔ
PerlͷυΩϡϝϯτ(ܗࣜ) • ׂͱࣗ༝ɺDESCRIPTION/SYNOPSISॏཁ • DESCRIPTION: Ϟδϡʔϧͷઆ໌ • SYNOPSIS: Ұ؏తͳαϯϓϧίʔυ •
PODܗࣜͰॻ͔ΕΔ
GoͷυΩϡϝϯτ(ܗࣜ) • ߏମ/ΠϯλʔϑΣʔε/ؔຖʹॻ͔ΕΔ • publicͳؔͳͲʹυΩϡϝϯτ͕ॻ͔Εͯ ͍ͳ͍ͱܯࠂ͕ग़Δ • ؔ͝ͱʹαϯϓϧίʔυ(Example)͕͋Δ • ίϝϯτͱͯ͠ιʔείʔυʹॻ͔ΕΔ
ڥ
Perlͷڥ • ॲཧܥperlͷΈ • ϚϧνOSαϙʔτ • ࣮ߦڥʹڧ͘ґଘ͢Δ • plenvCatronͳͲͰόʔδϣϯΛݻఆ͢Δ
Goͷڥ • ॲཧܥgoͷΈ • ϚϧνOSαϙʔτ (ΫϩείϯύΠϧ༰қ) • Ϗϧυڥʹڧ͘ґଘ͢Δ • Ϗϧυڥͷόʔδϣϯ͕static
link͞Εͨ όΠφϦ͕ੜ͞ΕΔ
Πϯετʔϧ
Perl ॲཧܥͷΠϯετʔϧ • anyenv install plenv • plenv install -l
# όʔδϣϯ֬ೝ • plenv install 5.22.1 • plenv global 5.22.1 • plenv install-cpanm
Perl ϞδϡʔϧͷΠϯετʔϧ • cpanm App::revealup • ςετ͕ϩʔΧϧͰ࣮ߦ͞ΕΔ • cpanm -n
App::revealup • ςετͳ͠ • cpanm —install-deps . • ΧϨϯτͷґଘϞδϡʔϧΛΠϯετʔϧ
Perl ڥͷצॴ • ࣮ߦڥʹ߹Θͤͯॊೈʹ։ൃڥΛม͑Δ • OSʹΠϯετʔϧ͢ΔͱrootݖݶͰϞδϡʔ ϧΛΠϯετʔϧ͢Δඞཁ͕͋Δ • ύεͷࢦఆՄೳ •
Cartonlocal::libͱซ༻͢Δख͋Δ
Go ॲཧܥͷΠϯετʔϧ • OS X: brew install go • Debian/Ubuntu:
apt-get install golang • binary: https://golang.org/dl/ • /usr/bin ͱ͔ʹී௨ʹΠϯετʔϧͰे
Go ϞδϡʔϧͷΠϯετʔϧ • go get github.com/karupanerura/gostress • ΠϯετʔϧͷΈ • go
get -t github.com/karupanerura/gostress • ςετͭͭ͠Πϯετʔϧ • go get -d . • ґଘϞδϡʔϧΛΠϯετʔϧ
Go ڥͷצॴ • ଟ༷ͳ࣮ߦڥΛߟ͑ͳͯ͘ྑ͍ • ࣮ߦڥͷόʔδϣϯΛؾʹ͠ͳͯ͘ྑ͍ • ඞཁ͕ग़ͨΒgoenvͳͲΛ͏ͱྑ͍ • ϞδϡʔϧGOPATHҎԼʹΠϯετʔϧ
• $HOME/go ͱ͔ʹ͠ͱ͚rootݖݶෆཁ
ΤσΟλ
PerlͷΤσΟλࣄ • emacs • cperl-mode + flycheck + perl-completion •
vim • vim-perl + quickrun + perlomni • ͘Θ͘͠ͳ͍
GoͷΤσΟλࣄ • emacs • go-mode + + flycheck + gocode
• vim • vim-go + vim-godef + gocode • ͘Θ͘͠ͳ͍
_ਓਓਓਓਓਓਓਓ_ > Γ͍ͨ < ʉY^Y^Y^Y^Y^Y^Yʉ
ݴޠ༷
໊લۭؒ
Perl ໊લۭؒ • package = ໊લۭؒ = Ϋϥε • private/publicͱ͍͏֓೦ແ͍
• ໊લۭؒͷϨΩγΧϧείʔϓ࡞ΕΔ • privateͱͯ͠ѻ͍͍ͨαϒϧʔνϯͷ߹ ΞϯμʔείΞΛ໊લͷprefixʹ͢Δͷ͕׳श
Perl ໊લۭؒ • ϑΝΠϧύεͱpackageʹڧ͍͕ؔ͋Δ • Foo::Bar = Foo/Bar.pm • ϩʔυ͢Δͱ͖use·ͨrequireΛ͏
• use Foo::Bar;
Perl ໊લۭؒ • ଞͷύοέʔδʹϑϧωʔϜͰΞΫηε • Foo::Bar::baz() # Foo::Barͷbuz()Λ࣮ߦ • σʔλ(ϦϑΝϨϯε)ͱpackageΛඥ͚Δ͜
ͱ͕Ͱ͖Δ(ޙड़)
Go ໊લۭؒ • package = ύοέʔδ • ໊લͰউखʹΞΫηε੍ޚֻ͕͔Δ • খจࣈͰ࢝·Δͷpackage
• େจࣈͰ࢝·Δͷpublic
Go ໊લۭؒ • ϑΝΠϧύεͱpackageʹڧ͍͕ؔ͋Δ • = Foo/Bar.pm • ଞͷύοέʔδʹϑϧωʔϜͰΞΫηε •
Foo::Bar::baz() # Foo::Barͷbuz()Λ࣮ߦ
ܕ
Perlͱܕ • ಈతܕ͚ݴޠʢίϯςΩετʹΑΔܕ͚ʣ • Scalar/Array/Hash ٴͼͦΕΒͷϦϑΝϨϯε • ଞͷಈతܕ͚ݴޠͱ͘Βͯಛघ • ৄ͘͠ޠΔͱ60͘Β͍Εͯ͠·͏ͷͰ
ࠓճৄ͍͠ݴٴΛ߇͑Δ(GoϝΠϯͳͷͰ)
Perlͷσʔλܕ (Scalar) • ୯ҰͷΛද͢σʔλܕ • /࣮/จࣈྻ/ϦϑΝϨϯε͕ೖΔ • ਓؒʹͱͬͯ $age ͕จࣈྻ͔Ͳ͏͔ؔ৺֎
• ίϯςΩετʹΑܾͬͯΊ͔͔ͯΓ͍ͨ • $age > 20 # ageΛͰѻ͏ίϯςΩετ
Perlͷσʔλܕ (Array/Hash) • ྻ • ॱংΛ࣋ͭσʔλͷू߹ • ϋογϡ • ໊લΛ࣋ͭσʔλͷू߹
Perlͷσʔλ (ϦϑΝϨϯε) • σʔλͷ࣮ମͷࢀর(CͷϙΠϯλʹ͍ۙ) • ϑΝΠϧγεςϜͰ͍͏ͱ͜ΖͷγϣʔτΧο τγϯϘϦοΫϦϯΫ • ϦϑΝϨϯεɾΧϯτGC •
࣮ମͷࢀর͕ͳ͘ͳΔͱ࣮ମΛഁغ
Goͱܕ • ڧ͍੩తܕ͚ݴޠ • มؔ(Ҿ/ฦΓ)ɺσʔλ͕ܕΛ࣋ͭ • มͱσʔλͷܕ͕Ұக͢Δඞཁ͕͋Δ • มͱؔͷܕ͕Ұக͢Δඞཁ͕͋Δ •
ͱʹ͔͘ܕ͕Ұக͢Δඞཁ͕͋Δ
Goͷσʔλܕ (جຊ) • : int, int32, int64 • ࣮: float,
float32, float64 • จࣈྻ: string
Goͷσʔλܕ (array) • ॱংΛ࣋ͬͨσʔλͷू߹ • αΠζ10ͷจࣈྻͷྻ: [10]string • Ұ࡞ͬͨΒ֦ு͢Δ͜ͱͰ͖ͳ͍
Goͷσʔλܕ (slice) • ྻͷҰ෦ΛεϥΠεͨ͠ࢀর • ͔Βͳ͍ਓϙΠϯλͷཧղ͕Γͳ͍ • ҎԼͷεϥΠυͷ39ϖʔδҎ߱Λࢀর͢͠ • http://www.slideshare.net/yasi_life/
go-14075425
Goͷσʔλܕ (map) • ໊લΛ࣋ͬͨσʔλͷू߹ • stringΛΩʔʹͨ͠ͷmap: map[string]int • αΠζؾʹ͠ͳͯ͘Α͠ͳʹͯ͘͠ΕΔ
Goͷσʔλܕ (struct) • ୯ҰͷσʔλΛදݱ͢Δσʔλͷू߹ • Point{X: 1, Y: 1} Έ͍ͨͳϊϦͷΞϨ
• ࣗ༝ʹఆٛͰ͖Δ • C++ͷstruct/classʹ͍ۙ (ޙड़)
Goͷσʔλܕ (pointer) • σʔλͷ࣮ମͷࢀর(CͷϙΠϯλʹ͍ۙ) • PerlͷϦϑΝϨϯεͱಉ͡ • શͯͷσʔλܕϙΠϯλΛ࡞ΕΔ
Goͷܕ (interface) • ಛఆͷؔΛݺͼग़ͤΔܕΛࣔ͢ • duck typingΛࢧԉ͢Δ • ࣗ༝ʹఆٛͰ͖Δ •
Javaͷinterfaceʹ͍͕ۙimplements͢Δඞཁ ͳ͍
ϝϞϦཧ
PerlͷϝϞϦཧ • શ෦ώʔϓྖҬʹ࣋ͭ • ϝϞϦϓʔϧΛ࣋ͬͯಈతʹׂΓͯΔ • શͯͷσʔλGCͰഁغ͞ΕΔ • ϦϑΝϨϯεΧϯτͳͷͰ॥ࢀরʹऑ͍
GoͷϝϞϦཧ • ͚ؔͩͰΘΕΔ: ελοΫྖҬ • ؔ֎ͰΘΕΔ: ώʔϓྖҬ • ώʔϓྖҬͷσʔλGCͰཧ͞ΕΔ •
Mark & Sweep ͳͷͰ॥ࢀরʹڧ͍͕GC͞ ΕΔͷ͕ଟ͍ͱGC͕ॏ͘ͳΔ
ؔ
Perl ؔ • αϒϧʔνϯ͕ସ • ԾҾແ͍ • @_Λదʹೖͯ͠͏ • ෳͷΛฦ͢͜ͱ͕Ͱ͖Δ
Go ؔ • ԾҾͱฦΓͷܕΛ໌ࣔ͢Δඞཁ͕͋Δ • @_ Έ͍ͨͳ൮ͳ͜ͱͰ͖ͳ͍ • ෳͷΛฦ͢͜ͱ͕Ͱ͖Δ •
ผʑͷมͰશͯͷฦΓΛड͚औΔ
ϝιου
Perl ϝιου • package(Ϋϥε)packageʹbless(ͻ͚) ͞ΕͨϦϑΝϨϯε(=Πϯελϯε)͔Βαϒ ϧʔνϯΛϝιουݺͼग़͠Ͱ͖Δ • ϝιουݺͼग़͢͠ΔͱαϒϧʔνϯͷୈҰ ҾʹίϯςΩετͱͯ͠ΫϥεΠϯελϯ ε͕͞ΕΔ
Perl ϝιου • @PackageName::ISA ͕ܧঝύοέʔδ • ݟͨͷ௨Γଟॏܧঝ͕Մೳ • ϝιουݺͼग़͠ͰܧঝΛḷͬͯ͘ΕΔ •
͜ͷ͔Β͘ΓΛblessͱΈ߹ΘͤΔ͜ͱͰ OOP͕ՄೳʹͳΔ
Perl ϝιου (ऄ) • AUTOLOAD • rubyͰ͍͏ͱ͜Ζͷmethod_missing • UNIVERSAL •
rubyͰ͍͏ͱ͜ΖͷObjectΫϥε
Go ϝιου • ࣗͷpackageͷσʔλܕʹϝιουͷΑ ͏ͳͷΛੜ͢͜ͱ͕Ͱ͖Δ • structͦͷϙΠϯλʹੜ͢ͷ͕Ұൠత • ଞͷݴޠͷΫϥεͷΠϯελϯεϝιουͬ Ά͘ͳΔ
Go ϝιου (ऄ) • structͷmixinՄೳ͕࣮ͩଶͨͩͷҕৡ • ܧঝͰͳ͍ͷͰʹϝιουݺͳ͍ • ҕৡͳͷͰcontext object͕ҟͳΔ͜ͱʹ
• ܕใisaͷؔʹͳΒͳ͍
Go ϝιου (ऄ) • ੩తܕ͚ݴޠͳͷͰAUTOLOADͰ͖·ͤΜ • ͪͳΈʹCrystalͩͱmacroͰ࣮ݱ͍ͯ͠Δ • UNIVERSALΈ͍ͨͳͭͳ͍ͷʔʁ •
ܧঝ͕ແ͍ͷͰ͓͍ͩ͘͠͞ͳ
લஔ͖ऴΘΓ
࣮༻తͳ
จࣈྻૢ࡞
Perl ͷจࣈྻૢ࡞ • ਖ਼نදݱ·͡࠷ߴ·͡ศར!! • جຊతʹshell script༝དྷͷจԽͳͷͰ… • tr///ͱs///ͱ͔͋Ε͍͍ͩͨͳΜͱ͔ͳΔ •
ͳΜͱ͔ͳΒͳ͍ͱ͜ΖͰuc/lcͱ͔Λ͏
Go ͷจࣈྻૢ࡞ • ίΞ͕αϙʔτ͢Δػೳ࠷খݶ • stringsύοέʔδͰ͍͍ͩͨͳΜͱ͔ͳΔ • ࠔͬͨΒ·ͣ͜͜ΛௐΑ • ਖ਼نදݱΛؾܰʹ͏ͱՄಡੑΛଛͳ͏
• ਖ਼نදݱͷίʔυ͕Perlͱ͘Βͯ
ܕม
Perl ͷܕม • ίϯςΩετͰܕΛ໌ࣔ͢ΔͷͰσʔλͷܕ ม͕ͦͦෆཁ • ڧ͍ͯݴ͑ίϯςΩετຖʹ҉తʹܕ ม͕ى͍ͬͯ͜Δͷʹ͍͕ۙ͜Εݫີʹ ਖ਼֬ͳදݱͰͳ͍
Go ͷܕม • ܕ͕ݫີͳͷͰܕม͍ͨ͜͠ͱ͕ଟ͍ • strconvύοέʔδͰ͍͍ͩͨͳΜͱ͔ͳΔ • ܕΩϟετ࠷ऴखஈͱ৺ಘΑ • interfaceΛ͏·͘׆༻͢Δͱଟ͘ͷ߹Ͱ
ܕΩϟετͷඞཁੑ͕ͳ͘ͳΔ
Τϥʔॲཧ
Perl ͷΤϥʔॲཧ • ྫ֎ • eval BLOCK ͷதͰdie͢Δ • $@
ʹdieʹͨ͠Scalar͕ೖΔ • ී௨
Go ͷΤϥʔॲཧ • ฦΓͰerrorܕΛฦ͢ͷ͕෩श • result, err := strconv.Atoi(“unko”) •
if err != nil { … } Ͱશ෦ͳΜͱ͔͢Δ • ذॻ͖ΕͯίϯύΠϥॿ͚ͯ͘ΕΜ
Go ͷΤϥʔॲཧ • ະ༻ͷม͕͋ΔͱίϯύΠϧΤϥʔ • ୯ҰͷείʔϓͰ୯ҰͷΤϥʔΛॲཧ͢Δ • ͢ΔͱerrorܕͷΛΘͳ͍ͱίϯύΠϧ Τϥʔ͕ൃੜ͢Δ •
catch࿙Ε͕͋ΔͱίϯύΠϧΤϥʔ͢Δੈք
ߏઃܭ ※ݸਓͷݟղͰ͢
Perl ͷߏઃܭ • খ͍͞ͷखଓ͖ͬΆ͘ΰϦΰϦͬͱॻ͘ • େ͖ͳͷOOPΒ͚ͯ͘͠ॻ͘ • Webͱ͔ͩͱAmon2ͱ͔ͬͯMVCͨ͠Γ • package(Ϋϥε)Ͱ͔ͬ͠ΓείʔϓΛΔ
Go ͷߏઃܭ • interfaceΛத৺ʹઃܭ͢Δ • ৼΔ͍Λड͚͍ͯ͘͠Πϝʔδ • ϙϦϞʔϑΟζϜతͳߟ͑ํ • ελοΫྖҬΛ͏·͘͏Α͏ʹॻ͘ͱߴ
Go ͷߏઃܭ • େ͖ͳͷΛ࡞Δͱ͖෦తʹpackageΛ ͚ΔͱΑͦ͞͏ • ૬ରύεͰύοέʔδΛϩʔυͰ͖ΔͷͰ ͦΕΛ͏·͘׆༻͢Δ • https://github.com/builderscon/octav
ฒྻॲཧ ※ݸਓͷݟղͰ͢
Perl ͷฒྻॲཧ • forkҰ • threadͷΑ͏ͳͷͳ͘ͳ͍͕ΰϛ • ͬͯͳΒͳ͍ • ಉظϑΝΠϧΛͬͨΓPIPEΛͬͨΓ
Perl ͷฒྻॲཧ • ͳΔ͘ϓϩηε͕͍·ΘͤΔΑ͏ʹ͢Δ • ͭ·Γ͍ΘΏΔpre-forkࣜ • ϓϩηεؒͷಉظ͕ඞཁʹͳͬͨΒෛ͚ • Ͳ͏ͯ͠ඞཁͳΒPerlʹ͍ͯͳ͍ͱׂ
ΓΔ͔AnyEventͳͲΛซ༻͢Δ
Go ͷฒྻॲཧ • goroutineͱ͍͏εϨουͷΑ͏ͳͷ͕͋Δ • ʮฒྻͰಈ͍ͯྑ͍ͷʯΛ࡞ΔΠϝʔδ • Go͕͍͍͔Μ͡ʹεέδϡʔϦϯά͢Δ • جຊతʹchannelͰಉظΛऔΔ
Go ͷฒྻॲཧ • ಉظͷίετΑΓฒྻԽͷϝϦοτ͕ߴ͚Ε ͕Μ͕ΜgoroutineΛ࡞Δͱྑͦ͞͏ • ಉظ͕සൟʹඞཁʹͳΔͳΒߟ͑ํΛม͑ ͯΈΔ • ϓϩηεͱҧͬͯؾܰʹࡴͤͳ͍ʹҙ
·ͱΊ
·ͱΊ • GoͱPerlࣅ͍ͯΔʂ • ͱ·Ͱݴ͑ͳ͍͚Ͳͱ͖͍ͬͭ͢ͱࢥ͏ • GoPerlదࡐదॴͰ͍͚ͬͯΔͱΑͦ͞͏ Ͱ͢Ͷ
͓ΘΓ
࣭·ͩ͋ΕͲ͏ͧ