Wikibooks
jawikibooks
https://ja.wikibooks.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
MediaWiki 1.44.0-wmf.3
first-letter
メディア
特別
トーク
利用者
利用者・トーク
Wikibooks
Wikibooks・トーク
ファイル
ファイル・トーク
MediaWiki
MediaWiki・トーク
テンプレート
テンプレート・トーク
ヘルプ
ヘルプ・トーク
カテゴリ
カテゴリ・トーク
Transwiki
Transwiki‐ノート
TimedText
TimedText talk
モジュール
モジュール・トーク
民法第877条
0
3661
263391
252761
2024-11-12T19:14:01Z
Tomzo
248
/* 参照条文 */
263391
wikitext
text/x-wiki
[[法学]]>[[民事法]]>[[コンメンタール民法]]>[[第4編 親族 (コンメンタール民法)]]
==条文==
([[扶養]]義務者)
;第877条
# 直系血族及び兄弟姉妹は、互いに扶養をする義務がある。
# [[家庭裁判所]]は、特別の事情があるときは、前項に規定する場合のほか、三親等内の[[親族]]間においても扶養の義務を負わせることができる。
# 前項の規定による審判があった後事情に変更を生じたときは、家庭裁判所は、その審判を取り消すことができる。
==解説==
{{wikipedia|扶養}}
:親族間の扶養の義務について定める。この場合、扶養とは、事実としての生活の扶助等又はそれに要する費用の負担を言う。[[民法第954条#参考|明治民法第954条]]の趣旨(扶養の範囲など)を継承。
:夫婦を除いて([[民法第752条]])、扶養義務において順位はつけられていないため、扶養者の連帯による扶養を行い、その負担の分担は扶養者間の協議に委ねられる。協議が整わない場合、家庭裁判所の審判による場合もある。この場合、一応は親等の差などが目安とはなろうが、その他、扶養者の資力等も総合的に判断されることとなる。
:1項の直系血族には、離婚等により親権を失った親子を当然に含み([[民法第766条|第766条]]により、「子の監護に要する費用の分担」を定めていたとしても、それを根拠に、扶養を要する子が自らの権利「扶養を受ける権利」を放棄したものではないから([[民法第881条|第881条]]扶養請求権の処分の禁止)、親権者である親の一方が子の扶養を十分に履行しない又は履行できない場合、他方の親に扶養に要する費用を請求できる)、また、兄弟姉妹とは、父母の双方を共通にする全血兄弟姉妹か、父母の一方のみを共通にする半血兄弟姉妹かを問わない。
:2項で3親等内の親族の扶養義務を定めるが、直系血族の配偶者<ref name="姻族">扶養義務ある直系血族等が亡くなった場合、その配偶者は[[民法第728条|第728条]]第2項に定める姻族関係を終了させる意思を表示しないかぎり扶養義務を負う可能性がある。</ref>、おじおば、甥姪、その各配偶者<ref name="姻族"/>にまで扶養義務が生ずることになることから、特別の事情と家庭裁判所の審判を必要とした。
==参照条文==
*[[民法第878条|第878条]](扶養の順位)
*[[民法第879条|第879条]](扶養の程度又は方法)
*[[民法第880条|第880条]](扶養に関する協議又は審判の変更又は取消し)
*[[民法第881条|第881条]](扶養請求権の処分の禁止)
*[[扶養義務の準拠法に関する法律]]
==判例==
#[http://www.courts.go.jp/search/jhsp0030?hanreiid=55977&hanreiKbn=02 扶養料立替等請求](最高裁判決 昭和26年02月13日)
#;扶養義務者の意に反して扶養権利者を引き取り扶養した他の扶養義務者と扶養費用の負担
#:現に扶養をしている扶養義務者の意に反して扶養権利者を引き取つて扶養したという事実だけでは、引き取つた他の扶養義務者が自己のみで扶養費用を負担すべきものとすることはできない。
#[https://www.courts.go.jp/app/hanrei_jp/detail2?id=69637 損害賠償請求事件](最高裁判決 平成12年9月7日)[[民法第416条]]、[[民法第709条]]
#;不法行為によって扶養者が死亡した場合における被扶養者の将来の扶養利益喪失による損害額の算定方法
#::*不法行為によって扶養者が死亡し、当該扶養者に多額の借財があって被扶養者である相続人が相続を放棄した場合に、加害者に対し扶養利益の喪失による損害賠償を請求することができるか、また、その算定基準について。
#:不法行為によって扶養者が死亡した場合における被扶養者の将来の扶養利益喪失による損害額は、扶養者の生前の収入、そのうち被扶養者の生計の維持に充てるべき部分、被扶養者各人につき扶養利益として認められるべき比率割合、扶養を要する状態が存続すべき期間などの具体的事情に応じて算定すべきである。
#:*不法行為によって死亡した者の配偶者及び子が右死亡者から扶養を受けていた場合に、加害者は右配偶者等の固有の利益である扶養請求権を侵害したものであるから、右配偶者等は、相続放棄をしたときであっても、加害者に対し、扶養利益の喪失による損害賠償を請求することができる。
#:*その扶養利益喪失による損害額は、相続により取得すべき死亡者の逸失利益の額と当然に同じ額となるものではなく、個々の事案において、扶養者の生前の収入、そのうち被扶養者の生計の維持に充てるべき部分、被扶養者各人につき扶養利益として認められるべき比率割合、扶養を要する状態が存続する期間などの具体的事情に応じて適正に算定すべきものである。
#[https://www.courts.go.jp/app/hanrei_jp/detail2?id=92090 婚姻費用分担申立て却下審判に対する抗告審の変更決定に対する許可抗告事件](最高裁決定 令和5年5月17日)[[民法第760条]]、[[民法第772条]]
#;婚姻費用分担審判において、夫とその妻が婚姻後に出産し戸籍上夫婦の嫡出子とされている子であって民法772条による嫡出の推定を受けないものとの間の父子関係の存否を審理判断することなく、夫の上記子に対する上記父子関係に基づく扶養義務を認めた原審の判断に違法があるとされた事例
#:婚姻費用分担審判において、夫とその妻が婚姻後に出産し戸籍上夫婦の嫡出子とされている子であって民法772条による嫡出の推定を受けないものとの間の父子関係の存否は訴訟において最終的に判断されるべきものであることを理由に、上記父子関係の不存在を確認する旨の判決が確定するまで夫は扶養義務を免れないとして、上記父子関係の存否を審理判断することなく、夫の上記子に対する上記父子関係に基づく扶養義務を認めた原審の判断には、違法がある。
==注==
<references/>
==参考==
明治民法において、本条には親権に関する以下の規定があった。戦後改正による家制度廃止に伴って大きく改正され、[[民法第818条]]及び[[民法第819条]]に継承された。
#子ハ其家ニ在ル父ノ親権ニ服ス但独立ノ生計ヲ立ツル成年者ハ此限ニ在ラス
#父カ知レサルトキ、死亡シタルトキ、家ヲ去リタルトキ又ハ親権ヲ行フコト能ハサルトキハ家ニ在ル母之ヲ行フ
----
{{前後
|[[コンメンタール民法|民法]]
|[[第4編 親族 (コンメンタール民法)|第4編 親族]]<br>
[[第4編 親族 (コンメンタール民法)#7|第7章 扶養]]<br>
|[[民法第876条の10]]<br>(補助の事務及び補助人の任務の終了等)
|[[民法第878条]]<br>(扶養の順位)
}}
{{stub|law}}
[[category:民法|877]]
f5q39owau4j5wh32ctyp5h5fa0qtogp
民法第767条
0
4748
263388
260648
2024-11-12T15:11:57Z
Tomzo
248
263388
wikitext
text/x-wiki
[[法学]]>[[民事法]]>[[民法]]>[[コンメンタール民法]]>[[第4編 親族 (コンメンタール民法)]]
==条文==
([[離婚]]による復氏等)
;第767条
# [[婚姻]]によって氏を改めた夫又は妻は、協議上の離婚によって婚姻前の氏に復する。
# 前項の規定により婚姻前の氏に復した夫又は妻は、離婚の日から3箇月以内に[[戸籍法]]の定めるところにより届け出ることによって、離婚の際に称していた氏を称することができる。
==解説==
:婚姻によって改姓した者は、離婚によって復氏するのが原則であるが、一定の要件により届けることにより離婚の際に称した氏('''婚氏''')を称することもできるとされている('''婚氏続称''')。婚姻を機会として一方の配偶者側の氏を使用している場合には、旧姓に戻ることによって社会生活に支障が生じることも多くあり、この不便を解消することが、本規定の目的で1976年(昭和51年)改正によってに導入された。
:届出は、[[戸籍法第19条]]【離婚・離縁等による復氏者の籍】に定める手続きによる。
:本条によって婚氏続称を行った後に婚姻前の姓に戻す場合は、「氏の変更([[戸籍法第107条]])」の取り扱いとなり、「やむを得ない事由」を付し家庭裁判所の許可を得て、その旨を届け出なければならない。なお、一方の配偶者との死別の場合は、婚氏続称が原則となるが、婚姻前の姓に戻すこともでき、この場合は、特別の理由等は不要で復氏の届出をなすことにより成立する([[民法第751条|第751条]]、[[戸籍法第95条]])。また、復氏の届出について期間の制限は定められていない。
==参照条文==
*[[民法第763条]](協議上の離婚)
*[[民法第771条]](協議上の離婚の規定の準用)
*[[民法第816条]] - 養子の離縁による復氏について、7年以上養親子関係にあった場合、婚氏続称同様、手続きを経ることにより養親の姓を名乗ることができる。
==参考==
明治民法において、本条には以下の規定があった。趣旨は、[[民法第733条]]に継承された。
#女ハ前婚ノ解消又ハ取消ノ日ヨリ六个月ヲ経過シタル後ニ非サレハ再婚ヲ為スコトヲ得ス
#女カ前婚ノ解消又ハ取消ノ前ヨリ懐胎シタル場合ニ於テハ其分娩ノ日ヨリ前項ノ規定ヲ適用セス
----
{{前後
|[[コンメンタール民法|民法]]
|[[第4編 親族 (コンメンタール民法)|第4編 親族]]<br>
[[第4編 親族 (コンメンタール民法)#2|第2章 婚姻]]<br>
[[第4編 親族 (コンメンタール民法)#2-4|第4節 離婚]]
|[[民法第766条]]<br>(離婚後の子の監護に関する事項の定め等)
|[[民法第768条]]<br>(財産分与)
}}
{{stub|law}}
[[category:民法|767]]
m6ie1kli02knk0jimm5k4aq5qxgv93e
民法第770条
0
5231
263412
250210
2024-11-13T04:19:28Z
Maidodo
22237
/* 改正経緯 */
263412
wikitext
text/x-wiki
[[法学]]>[[民事法]]>[[民法]]>[[コンメンタール民法]]>[[第4編 親族 (コンメンタール民法)]]
==条文==
(裁判上の[[離婚]])
;第770条
# 夫婦の一方は、次に掲げる場合に限り、離婚の訴えを提起することができる。
##[[配偶者]]に不貞な行為があったとき。
##配偶者から悪意で遺棄されたとき。
##配偶者の生死が3年以上明らかでないとき。
##その他婚姻を継続し難い重大な事由があるとき。
# 裁判所は、前項第1号から第3号までに掲げる事由がある場合であっても、一切の事情を考慮して婚姻の継続を相当と認めるときは、離婚の請求を棄却することができる。
===改正経緯===
2024年改正(令和6年5月21日公布、施行日未定、公布より2年以内に施行する)において、第1項第4号に以下の条項が規定されていたが削除され、それに伴い、旧第5号が第4項に繰り上がり、第2項の適用範囲が改正された。
:''配偶者が強度の精神病にかかり、回復の見込みがないとき。''
==解説==
:'''婚姻を継続できない原因'''があり、当事者間の協議で合意できない場合、夫婦の一方は裁判の訴えを提起できる。訴訟手続については、人事訴訟法の規定が適用される([[人事訴訟法第2条]]1号)。なお、明治民法においては、[[民法第813条#参考|第813条]]から[[民法第818条#参考|第818条]]までの6か条にわたって定めていた。
:#'''調停離婚'''([[家事事件手続法第244条]]、[[家事事件手続法第268条|同法第268条]]、旧法:[[家事審判法第21条]]第1項)
:#:離婚の請求があった場合でも、婚姻の解消は当事者間の合意によることが望ましいため、裁判に先立って、双方による合意を形成する場として調停を前置し、それが不調である時に初めて裁判に移行する制度となっている('''調停前置主義''';[[家事事件手続法第257条|同法第257条]]、旧法:[[家事審判法第18条]])。
:#'''審判離婚'''([[家事事件手続法第284条]]・[[家事事件手続法第285条|第285条]]・[[家事事件手続法第286条|第286条]]・[[家事事件手続法第287条|第287条]]、旧法:[[家事審判法第24条]])
:#:調停の大部分は合意がなされたが、細部において合意が得られない場合、家庭裁判所は、職権により審判をなし離婚を成立させることができる('''調停に代わる審判''')。このような状況になることは少なく、適用例も少ない。審判に不満である場合は異議を申し立てることができ、異議が受容された場合、裁判に移行する。
:#'''裁判離婚'''(本条)
:##調停不調の場合、裁判手続きに移行する。
:##移行後も、当事者間の合意を尊重し、迅速に進行させる観点から、裁判上の和解('''和解離婚''')又は一方の請求に対する認諾('''認諾離婚''')を勧奨する場合がある([[人事訴訟法第37条]])。
:##訴訟で離婚請求を認容する場合は以下の離婚原因が存在することを要する。
:###[[配偶者]]に[[不貞行為|不貞な行為]]があったとき。
:###配偶者から悪意で遺棄されたとき。
:###配偶者の生死が3年以上明らかでないとき。
:###<del>配偶者が強度の精神病にかかり、回復の見込みがないとき。 </del>
:###その他婚姻を継続し難い重大な事由があるとき。
:##:「離婚原因」については、それを作出した側からの離婚請求は認められないものと解されている。
:##裁判においては、以下の事項に関する「付帯処分」についての裁判を必須とする([[人事訴訟法第32条]])
:###子の監護者の指定その他の子の監護に関する処分
:###財産の分与に関する処分
:###[[厚生年金保険法第78条の2]]第2項の規定による処分
:###:「標準報酬改定請求」について、当該対象期間における保険料納付に対する当事者の寄与の程度その他一切の事情を考慮して、請求すべき按分割合を定める。
:##判決に不服がある当事者は控訴することができる。控訴判決に不服がある場合、上告も可能であるが、この種の案件が上告で覆されることは極めて稀である。
==参照条文==
*[[民法第763条]](協議上の離婚)
*[[コンメンタール人事訴訟法|人事訴訟法]]
==判例==
*[http://www.courts.go.jp/search/jhsp0030?hanreiid=53618&hanreiKbn=02 離婚請求](最高裁判決 昭和36年04月25日)
*;離婚原因に関する当事者の主張の解釈
*:本条第1項第4号の離婚原因を主張して離婚の訴を提起したからといつて、反対の事情のないかぎり同条項第5号の離婚原因も主張されているものと解することは許されない。
*;本条第1項第5号の離婚原因の成立を認め得ないとされた事例。
*:妻が精神病にかかつているけれども回復の見込がないと断じ得ないため本条第1項第4号の離婚原因を認め得ない場合に、右精神病治療のため相当長期入院加療を擁するところ夫の財政状態および家庭環境が原判示の如くであるというだけの理由で、同条項第5号の離婚原因の成立を認めることは相当でない。
*[http://www.courts.go.jp/search/jhsp0030?hanreiid=52108&hanreiKbn=02 離婚等請求](最高裁判決 昭和48年11月15日)
*;不貞な行為の意義
*:不貞な行為とは、配偶者のある者が、自由な意思にもとづいて、配偶者以外の者と性的関係を結ぶことをいい、相手方の自由な意思にもとづくものであるか否かは問わない。
*[http://www.courts.go.jp/search/jhsp0030?hanreiid=55213&hanreiKbn=02 離婚](最高裁判決 昭和62年09月02日) [[民法第1条]]2項
*;長期間の別居と有責配偶者からの離婚請求
*:有責配偶者からされた離婚請求であつても、夫婦がその年齢及び同居期間と対比して相当の長期間別居し、その間に未成熟子がいない場合には、相手方配偶者が離婚によつて精神的・社会的・経済的に極めて苛酷な状態におかれる等離婚請求を認容することが著しく社会正義に反するといえるような特段の事情のない限り、有責配偶者からの請求であるとの一事をもつて許されないとすることはできない。
*;有責配偶者からの離婚請求が長期間の別居等を理由として認容すべきであるとされた事例
*:有責配偶者からされた離婚請求であつても、夫婦が36年間別居し、その間に未成熟子がいないときには、相手方配偶者が離婚によつて精神的・社会的・経済的に極めて苛酷な状態におかれる等離婚請求を認容することが著しく社会正義に反するといえるような特段の事情のない限り、認容すべきである。
*[https://www.courts.go.jp/app/hanrei_jp/detail2?id=52821 離婚請求](最高裁判決 昭和33年07月25日)
*;民法第770条第1項第4号と同条第2項の法意。
*:民法第770条第1項第4号と同条第2項は、単に夫婦の一方が不治の精神病にかかつた一事をもつて直ちに離婚の請求を理由ありとするものと解すべきでなく、たとえかかる場合においても、諸般の事情を考慮し、病者の今後の療養、生活等についてできるかぎりの具体的方途を講じ、ある程度において、前途に、その方途の見込のついた上でなければ、ただちに婚姻関係を廃絶することは不相当と認めて、離婚の請求は許さない法意であると解すべきである。
==参考==
明治民法において、本条には以下の規定があった。趣旨は、[[民法第735条]]に継承された。
:直系姻族ノ間ニ於テハ婚姻ヲ為スコトヲ得ス第七百二十九条ノ規定ニ依リ姻族関係カ止ミタル後亦同シ
----
{{前後
|[[コンメンタール民法|民法]]
|[[第4編 親族 (コンメンタール民法)|第4編 親族]]<br>
[[第4編 親族 (コンメンタール民法)#2|第2章 婚姻]]<br>
[[第4編 親族 (コンメンタール民法)#2-4|第4節 離婚]]
|[[民法第769条]]<br>(離婚による復氏の際の権利の承継)
|[[民法第771条]]<br>(協議上の離婚の規定の準用)
}}
{{stub|law}}
[[category:民法|770]]
[[category:民法 2024年改正|770]]
ta8pn9nbog8rd083w01i2iyoobs2co0
民法第816条
0
5677
263387
229133
2024-11-12T15:11:52Z
Tomzo
248
263387
wikitext
text/x-wiki
[[法学]]>[[民事法]]>[[コンメンタール民法]]>[[第4編 親族 (コンメンタール民法)]]
==条文==
([[離縁]]による復氏等)
;第816条
# [[養子]]は、離縁によって縁組前の氏に復する。ただし、配偶者とともに養子をした養親の一方のみと離縁をした場合は、この限りでない。
# 縁組の日から7年を経過した後に前項の規定により縁組前の氏に復した者は、離縁の日から3箇月以内に[[戸籍法]]の定めるところにより届け出ることによって、離縁の際に称していた氏を称することができる。
==解説==
:離縁による復氏について定める。元になった[[民法第875条#参考|明治民法第875条]]は「養子ハ離縁ニ因リ其実家ニ於テ有セシ身分ヲ回復ス但第三者カ既ニ取得シタル権利ヲ害スルコトヲ得ス」と身分の移動を定めていたが、戦後改正において、法制度としての家が消滅したため、当事者以外に影響を与えるものが氏のみとなり、離縁に伴ったものとしては復氏のみとなった([[民法第810条]]参照)。
:しかしながら、ある氏(姓)を長期間名乗っていたという事情を変えることによる不利益もあり、離縁後も縁組時の氏を継続して名乗ることができるよう、1987年(昭和62年)に改正改正がなされている(婚姻・離婚時における「婚氏続称([[民法第767条]]第2項)」同様の制度。なお、[[民法第810条]]但書参照)。ただし、氏の変更を目的とした縁組、離縁を防止するため、短期の離縁は当然復氏とし、縁組時の氏を名乗るためには7年の経過を要するものとされた。
==参照条文==
*[[民法第767条]](離婚による復氏等)
==参考==
明治民法において、本条には離婚原因ある場合の提訴期間の限界についての以下の規定があったが、継承なく廃止された。
:[[民法第813条#参考|第八百十三条]]第一号乃至第八号ノ事由ニ因ル離婚ノ訴ハ之ヲ提起スル権利ヲ有スル者カ離婚ノ原因タル事実ヲ知リタル時ヨリ一年ヲ経過シタル後ハ之ヲ提起スルコトヲ得ス其事実発生ノ時ヨリ十年ヲ経過シタル後亦同シ
----
{{前後
|[[コンメンタール民法|民法]]
|[[第4編 親族 (コンメンタール民法)|第4編 親族]]<br>
[[第4編 親族 (コンメンタール民法)#3|第3章 親子]]<br>
[[第4編 親族 (コンメンタール民法)#3-2|第2節 養子]]
|[[民法第815条]]<br>(養子が十五歳未満である場合の離縁の訴えの当事者)
|[[民法第817条]]<br>(離縁による復氏の際の権利の承継)
}}
{{stub|law}}
[[category:民法|816]]
leolzt8x7aapjawl0jsco40e2s1qdv4
263389
263387
2024-11-12T17:43:20Z
Tomzo
248
/* 解説 */
263389
wikitext
text/x-wiki
[[法学]]>[[民事法]]>[[コンメンタール民法]]>[[第4編 親族 (コンメンタール民法)]]
==条文==
([[離縁]]による復氏等)
;第816条
# [[養子]]は、離縁によって縁組前の氏に復する。ただし、配偶者とともに養子をした養親の一方のみと離縁をした場合は、この限りでない。
# 縁組の日から7年を経過した後に前項の規定により縁組前の氏に復した者は、離縁の日から3箇月以内に[[戸籍法]]の定めるところにより届け出ることによって、離縁の際に称していた氏を称することができる。
==解説==
:離縁による復氏について定める。元になった[[民法第875条#参考|明治民法第875条]]は「養子ハ離縁ニ因リ其実家ニ於テ有セシ身分ヲ回復ス但第三者カ既ニ取得シタル権利ヲ害スルコトヲ得ス」と身分の移動を定めていたが、戦後改正において、法制度としての家が消滅したため、当事者以外に影響を与えるものが氏のみとなり、離縁に伴ったものとしては復氏のみとなった([[民法第810条]]参照)。
:しかしながら、ある氏(姓)を長期間名乗っていたという事情を変えることによる不利益もあり、離縁後も縁組時の氏を継続して名乗ることができるよう、1987年(昭和62年)に改正がなされている(婚姻・離婚時における「婚氏続称([[民法第767条]]第2項)」同様の制度。なお、[[民法第810条]]但書参照)。ただし、氏の変更を目的とした縁組、離縁を防止するため、短期の離縁は当然復氏とし、縁組時の氏を名乗るためには7年の経過を要するものとされた。
==参照条文==
*[[民法第767条]](離婚による復氏等)
==参考==
明治民法において、本条には離婚原因ある場合の提訴期間の限界についての以下の規定があったが、継承なく廃止された。
:[[民法第813条#参考|第八百十三条]]第一号乃至第八号ノ事由ニ因ル離婚ノ訴ハ之ヲ提起スル権利ヲ有スル者カ離婚ノ原因タル事実ヲ知リタル時ヨリ一年ヲ経過シタル後ハ之ヲ提起スルコトヲ得ス其事実発生ノ時ヨリ十年ヲ経過シタル後亦同シ
----
{{前後
|[[コンメンタール民法|民法]]
|[[第4編 親族 (コンメンタール民法)|第4編 親族]]<br>
[[第4編 親族 (コンメンタール民法)#3|第3章 親子]]<br>
[[第4編 親族 (コンメンタール民法)#3-2|第2節 養子]]
|[[民法第815条]]<br>(養子が十五歳未満である場合の離縁の訴えの当事者)
|[[民法第817条]]<br>(離縁による復氏の際の権利の承継)
}}
{{stub|law}}
[[category:民法|816]]
lyzdzw71v7pezk3hr0w96wezbf106ot
千葉大対策
0
6561
263390
263377
2024-11-12T18:31:07Z
Ayhxuknbsijceivzdjhswh
66317
/* 理学部物理学科 */
263390
wikitext
text/x-wiki
{{wikipedia|千葉大学}}
*[[日本の大学受験ガイド]] > [[千葉大対策]]
本項は、[[w:千葉大学|千葉大学]]の入学試験対策に関する事項である。
千葉大学は千葉県千葉市に拠点を置く総合大学である。東京高等工芸学校、千葉高等園芸学校を前身としているという背景から理系色の強い大学である。その他にも国立大学では唯一の法政経学部・園芸学部・看護学部・国際教養学部を有するユニークな学部・学科を多数持ち合わせている大学である。
また、全学部で留学を必須としている。
入試試験に関してであるが、上位受験生にとっては、どの科目も基礎を押さえておけば合格にたどりつけるが、一部難問も見られる。
== 共通テスト ==
学部で差はあるものの共通テストと2次試験の配点率は前期で概ね1:2、後期で概ね1:1としているところが多いので、少なくとも前期で75~80%かそれ以上、後期においては80%以上取れれば合格への希望が大きく開けてるだろう。ただし、これは一般的な目安であり上記の共通テスト得点率よりも低い場合でも2次試験で挽回できるので頑張って欲しい。
医学部と法政経学部のみ二段階選抜がある。
== 前期日程 ==
'''英語'''<br />
合格への鍵を握る科目は英語である。近年は全3問からなり、第1問と第2問は読解、第3問は文法(熟語)問題という形式が定着している。和文英訳は近年出題されてない。千葉大の読解問題は非常にシンプルな出題内容(例えば、下線部が指している内容を日本語で具体的かつ簡潔に記述・説明する、など)であるが、『超』長文と呼ぶべき量が出題される場合もあるので、対策をしておかないと時間内に終わらない可能性が高い。また、私大型の勉強もそれなりに補完関係にあるが、記述力をつけるために必ず過去問にも当たるべきである。
教育学部英語教育コースのみライティングが課される。制限時間は50分で与えられたトピックに対して250字程度の英語論述をするというもの。
なお、英検習得による加点がある。特に国際教養学部では英検準一級or一級取得かつCSEスコアが2500を超えるか、TEAPで375点以上取ると満点換算され、大きなアドバンテージとなる。
それ以外の学部でも(医学部除いて)実施されているが、持っていなくてもあまり差はつかないと思われる。
'''数学'''<br />
微分積分は毎年必ず出るので落とさないようにしたい。また、整数問題も頻出である。学部学科によって解答する問題が異なり、解法パターンの決まった問題から難度の高い問題まで出題される。文系学部は平素の学習は黄色チャートで十分であるが、理系学部は難度の高い問題も出題されるため青チャートを使用するとよい。今までの記述模試の復習も有効である。数学が苦手な受験生は教科書レベルにさかのぼって学習することで部分点は取れるだろう。
数学科と医学部専用問題は上位旧帝に匹敵するほどの難問になることがある。これらの学部を志望してる生徒は千葉大に限らずさらに上の大学の数学の問題も解くと良いだろう。
'''国語'''<br />
例年、現代文、古文、漢文の大問3問が出題されるパターンである。字数制限が付された上で記述解答させる問題の出題が形式化しているため、日頃から自分の考えを簡潔に表現できる力を身につけておくことが高得点への第一歩へとつながるであろう。また、漢文や古文を現代訳させる問題も頻出であるので日頃からコツコツ勉強し、古文単語や文法用法に関して知識を蓄えておくことが重要である。
'''理科'''<br />
理学部数学・情報数理学科と国際教養学部以外の理系受験生は「物理」「化学」「生物」「地学」の2科目を選択し、受験することになる。学部学科によって、受験する科目、解答する問題が違う。
なお薬学部、医学部では地学は解答できないため注意。
====物理====
理学部物理学科、医学部等が解答する問題は全体的に難易度が高く、単なる解法暗記では太刀打ちできない可能性がある。また融合問題が出てくることもある。
それ以外の学科では標準的な問題が多い。
語句問題が出たこともある為、教科書に太字で載ってる語句は書けるようにすること。
====化学====
化学科、医学部等の専用問題以外は全体的に標準程度。
記述問題もそこそこ出題されてる為、典型的なものは書けるようにしておきたい。
専用問題はかなり難しく、煩雑な計算やマニアックな知識が問われる問題もある。さらに学校ではあまり扱われない合成高分子やアミノ酸等が出題されている。逆に近年は専用問題以外で高分子系は問われてない。
== 後期日程 ==
前期に比べて難易度は大きく跳ね上がる。
特に前期と比べて共通テストの比重が大きい学部が多いため、共通テストで高得点を取らないと挽回不可能になることもある。
対策は前期に志望してる大学と同じ対策を続ければ良いが、一部の学部では小論文や総合テストが課される。
後期試験の地球科学科は大学入試にしては珍しく地学が必須となっている。その為後期で考えてる人は注意。
'''数学'''<br />
理学部数学科は180分で6問、それ以外の学部は120分で3~4問を解く。昔は医学部専用問題があったが、今後復活するかは不明。難易度は前期と同じレベルから東京科学大(またはそれ以上)レベルの問題まで様々である。
'''総合テスト'''<br />
====法政経学部====
試験時間は90分で、英語長文の問題だが社会科学や統計学等専門的なテーマの内容かつ超長文の為難易度は非常に高い。設問としては、空欄補充や下線部和訳、内容説明など一般的なものが多いが、計算問題が出てくることもある。この手の長文は類題が少なく、対策が難しい為、過去問研究をし、取れるところを確実に獲得すれば合格にたどり着けるだろう。
====理学部物理学科====
試験時間は150分。物理の問題だが、他の学部の物理と異なる点は数3Cも出題範囲ということ。
とはいえ、このレベルの物理学科を志望しているなら大きな弊害にはならないだろう。
いわゆる「数理物理」のようなものである。実際に説明があるとはいえ、2023年のように加速度が2回微分表記であったりする。また、原子も高頻度で出題されている。対策としては、過去問以外だと東京科学大(旧東京工業大学)等専門的な物理を出題する大学の過去問を解くのも有効である。
後期試験とはいえ近年合格点が高いこと(2024年で最低点の得点率は約75%)に注意。その為共通テストでボーダーを超えても、2次試験で7~8割程度取らないと合格できないため、必然的に高得点争いになる。
== 模試 ==
大学別模擬試験としては、東進が千葉大本番レベル模試を実施している。他の予備校(駿台、河合塾等)は千葉大模試を実施してないため注意。全国の千葉大志望者における自己の位置を知るのにもよいので積極的に受験することをお勧めする。
== 外部サイト ==
*[http://www.chiba-u.ac.jp/exam/ 千葉大公式サイト]
[[Category:大学入試|ちはたいたいさく]]
[[カテゴリ:千葉県]]
rr5tj3zp7cbyhq1ko95serpsszsv0pe
263392
263390
2024-11-12T19:18:49Z
Ayhxuknbsijceivzdjhswh
66317
/* 後期日程 */
263392
wikitext
text/x-wiki
{{wikipedia|千葉大学}}
*[[日本の大学受験ガイド]] > [[千葉大対策]]
本項は、[[w:千葉大学|千葉大学]]の入学試験対策に関する事項である。
千葉大学は千葉県千葉市に拠点を置く総合大学である。東京高等工芸学校、千葉高等園芸学校を前身としているという背景から理系色の強い大学である。その他にも国立大学では唯一の法政経学部・園芸学部・看護学部・国際教養学部を有するユニークな学部・学科を多数持ち合わせている大学である。
また、全学部で留学を必須としている。
入試試験に関してであるが、上位受験生にとっては、どの科目も基礎を押さえておけば合格にたどりつけるが、一部難問も見られる。
== 共通テスト ==
学部で差はあるものの共通テストと2次試験の配点率は前期で概ね1:2、後期で概ね1:1としているところが多いので、少なくとも前期で75~80%かそれ以上、後期においては80%以上取れれば合格への希望が大きく開けてるだろう。ただし、これは一般的な目安であり上記の共通テスト得点率よりも低い場合でも2次試験で挽回できるので頑張って欲しい。
医学部と法政経学部のみ二段階選抜がある。
== 前期日程 ==
'''英語'''<br />
合格への鍵を握る科目は英語である。近年は全3問からなり、第1問と第2問は読解、第3問は文法(熟語)問題という形式が定着している。和文英訳は近年出題されてない。千葉大の読解問題は非常にシンプルな出題内容(例えば、下線部が指している内容を日本語で具体的かつ簡潔に記述・説明する、など)であるが、『超』長文と呼ぶべき量が出題される場合もあるので、対策をしておかないと時間内に終わらない可能性が高い。また、私大型の勉強もそれなりに補完関係にあるが、記述力をつけるために必ず過去問にも当たるべきである。
教育学部英語教育コースのみライティングが課される。制限時間は50分で与えられたトピックに対して250字程度の英語論述をするというもの。
なお、英検習得による加点がある。特に国際教養学部では英検準一級or一級取得かつCSEスコアが2500を超えるか、TEAPで375点以上取ると満点換算され、大きなアドバンテージとなる。
それ以外の学部でも(医学部除いて)実施されているが、持っていなくてもあまり差はつかないと思われる。
'''数学'''<br />
微分積分は毎年必ず出るので落とさないようにしたい。また、整数問題も頻出である。学部学科によって解答する問題が異なり、解法パターンの決まった問題から難度の高い問題まで出題される。文系学部は平素の学習は黄色チャートで十分であるが、理系学部は難度の高い問題も出題されるため青チャートを使用するとよい。今までの記述模試の復習も有効である。数学が苦手な受験生は教科書レベルにさかのぼって学習することで部分点は取れるだろう。
数学科と医学部専用問題は上位旧帝に匹敵するほどの難問になることがある。これらの学部を志望してる生徒は千葉大に限らずさらに上の大学の数学の問題も解くと良いだろう。
'''国語'''<br />
例年、現代文、古文、漢文の大問3問が出題されるパターンである。字数制限が付された上で記述解答させる問題の出題が形式化しているため、日頃から自分の考えを簡潔に表現できる力を身につけておくことが高得点への第一歩へとつながるであろう。また、漢文や古文を現代訳させる問題も頻出であるので日頃からコツコツ勉強し、古文単語や文法用法に関して知識を蓄えておくことが重要である。
'''理科'''<br />
理学部数学・情報数理学科と国際教養学部以外の理系受験生は「物理」「化学」「生物」「地学」の2科目を選択し、受験することになる。学部学科によって、受験する科目、解答する問題が違う。
なお薬学部、医学部では地学は解答できないため注意。
====物理====
理学部物理学科、医学部等が解答する問題は全体的に難易度が高く、単なる解法暗記では太刀打ちできない可能性がある。また融合問題が出てくることもある。
それ以外の学科では標準的な問題が多い。
語句問題が出たこともある為、教科書に太字で載ってる語句は書けるようにすること。
====化学====
化学科、医学部等の専用問題以外は全体的に標準程度。
記述問題もそこそこ出題されてる為、典型的なものは書けるようにしておきたい。
専用問題はかなり難しく、煩雑な計算やマニアックな知識が問われる問題もある。さらに学校ではあまり扱われない合成高分子やアミノ酸等が出題されている。逆に近年は専用問題以外で高分子系は問われてない。
== 後期日程 ==
大半の学部で後期を実施している。
前期に比べて難易度は大きく跳ね上がる。
特に前期と比べて共通テストの比重が大きい学部が多いため、共通テストで高得点を取らないと挽回不可能になることもある。
後期試験の地球科学科は大学入試にしては珍しく地学が必須となっている。その為後期で考えてる人は注意。
'''小論文'''<br />
文学部で実施。試験時間は120分。
歴史学コースと行動科学コースで問題が異なる。
====行動科学コース====
大問数は1問。内容は英語の超長文である。設問は本文に対し70字で説明する、600字程度で自分の考えを述べる等といったものである。内容も専門的な物の為、難易度は高い。過去問を研究したり、普段から時事について関心を持つことが大切である(これは歴史学コースでも同じことが言える)。
====歴史学コース====
大問数は2問。1問目は和文、2問目は英文である。法政経学部等に比べると英語長文は長くないものの、当然専門的な内容なので難易度は高い。
大問1の設問はよくある小論文のような内容。大問2は下線部和訳や要約、数百字で自分の考えを説明するような設問が多い。
'''数学'''<br />
理学部数学科は180分で6問、工学部、医学部は120分で3~4問を解く。昔は医学部専用問題があったが、今後復活するかは不明。難易度は前期と同じレベルから東京科学大(またはそれ以上)レベルの問題まで様々である。
'''英語'''<br />
医学部のみ課される。試験時間は80分。医学部専用問題の為、医療系がテーマの長文が2題出題される。設問も難しく、医療系の英単語も覚えてないと辛いところが多い。
'''理科'''<br />
====物理====
見慣れない設定の問題が多いが、落ち着いて問題の状況を把握し、面倒な問題は後回しにすることが大切である。
また、大学受験では疎かにしやすい交流がよく出てることも特徴。
'''総合テスト'''<br />
法政経学部と理学部物理学科で課される。
====法政経学部====
試験時間は90分で、英語長文の問題だが社会科学や統計学等専門的なテーマの内容かつ超長文の為難易度は非常に高い。設問としては、空欄補充や下線部和訳、内容説明など一般的なものが多いが、計算問題が出てくることもある。この手の長文は類題が少なく、対策が難しい為、過去問研究をし、取れるところを確実に獲得すれば合格にたどり着けるだろう。
====理学部物理学科====
試験時間は150分。物理の問題だが、他の学部の物理と異なる点は数3Cも出題範囲ということ。
とはいえ、このレベルの物理学科を志望しているなら大きな弊害にはならないだろう。
いわゆる「数理物理」のようなものである。実際に説明があるとはいえ、2023年のように加速度が2回微分表記であったりする。また、原子も高頻度で出題されている。対策としては、過去問以外だと東京科学大(旧東京工業大学)や専門的な物理を出題する大学の過去問を解くのも有効である。
後期試験とはいえ近年合格点が高いこと(2024年で最低点の得点率は約75%)に注意。その為共通テストでボーダーを超えても、2次試験で7~8割程度取らないと合格できないため、必然的に高得点争いになる。
== 模試 ==
大学別模擬試験としては、東進が千葉大本番レベル模試を実施している。他の予備校(駿台、河合塾等)は千葉大模試を実施してないため注意。全国の千葉大志望者における自己の位置を知るのにもよいので積極的に受験することをお勧めする。
== 外部サイト ==
*[http://www.chiba-u.ac.jp/exam/ 千葉大公式サイト]
[[Category:大学入試|ちはたいたいさく]]
[[カテゴリ:千葉県]]
5slpg1ovchsd5zeehyh99ew057spxmf
263393
263392
2024-11-12T19:20:33Z
Ayhxuknbsijceivzdjhswh
66317
/* 行動科学コース */
263393
wikitext
text/x-wiki
{{wikipedia|千葉大学}}
*[[日本の大学受験ガイド]] > [[千葉大対策]]
本項は、[[w:千葉大学|千葉大学]]の入学試験対策に関する事項である。
千葉大学は千葉県千葉市に拠点を置く総合大学である。東京高等工芸学校、千葉高等園芸学校を前身としているという背景から理系色の強い大学である。その他にも国立大学では唯一の法政経学部・園芸学部・看護学部・国際教養学部を有するユニークな学部・学科を多数持ち合わせている大学である。
また、全学部で留学を必須としている。
入試試験に関してであるが、上位受験生にとっては、どの科目も基礎を押さえておけば合格にたどりつけるが、一部難問も見られる。
== 共通テスト ==
学部で差はあるものの共通テストと2次試験の配点率は前期で概ね1:2、後期で概ね1:1としているところが多いので、少なくとも前期で75~80%かそれ以上、後期においては80%以上取れれば合格への希望が大きく開けてるだろう。ただし、これは一般的な目安であり上記の共通テスト得点率よりも低い場合でも2次試験で挽回できるので頑張って欲しい。
医学部と法政経学部のみ二段階選抜がある。
== 前期日程 ==
'''英語'''<br />
合格への鍵を握る科目は英語である。近年は全3問からなり、第1問と第2問は読解、第3問は文法(熟語)問題という形式が定着している。和文英訳は近年出題されてない。千葉大の読解問題は非常にシンプルな出題内容(例えば、下線部が指している内容を日本語で具体的かつ簡潔に記述・説明する、など)であるが、『超』長文と呼ぶべき量が出題される場合もあるので、対策をしておかないと時間内に終わらない可能性が高い。また、私大型の勉強もそれなりに補完関係にあるが、記述力をつけるために必ず過去問にも当たるべきである。
教育学部英語教育コースのみライティングが課される。制限時間は50分で与えられたトピックに対して250字程度の英語論述をするというもの。
なお、英検習得による加点がある。特に国際教養学部では英検準一級or一級取得かつCSEスコアが2500を超えるか、TEAPで375点以上取ると満点換算され、大きなアドバンテージとなる。
それ以外の学部でも(医学部除いて)実施されているが、持っていなくてもあまり差はつかないと思われる。
'''数学'''<br />
微分積分は毎年必ず出るので落とさないようにしたい。また、整数問題も頻出である。学部学科によって解答する問題が異なり、解法パターンの決まった問題から難度の高い問題まで出題される。文系学部は平素の学習は黄色チャートで十分であるが、理系学部は難度の高い問題も出題されるため青チャートを使用するとよい。今までの記述模試の復習も有効である。数学が苦手な受験生は教科書レベルにさかのぼって学習することで部分点は取れるだろう。
数学科と医学部専用問題は上位旧帝に匹敵するほどの難問になることがある。これらの学部を志望してる生徒は千葉大に限らずさらに上の大学の数学の問題も解くと良いだろう。
'''国語'''<br />
例年、現代文、古文、漢文の大問3問が出題されるパターンである。字数制限が付された上で記述解答させる問題の出題が形式化しているため、日頃から自分の考えを簡潔に表現できる力を身につけておくことが高得点への第一歩へとつながるであろう。また、漢文や古文を現代訳させる問題も頻出であるので日頃からコツコツ勉強し、古文単語や文法用法に関して知識を蓄えておくことが重要である。
'''理科'''<br />
理学部数学・情報数理学科と国際教養学部以外の理系受験生は「物理」「化学」「生物」「地学」の2科目を選択し、受験することになる。学部学科によって、受験する科目、解答する問題が違う。
なお薬学部、医学部では地学は解答できないため注意。
====物理====
理学部物理学科、医学部等が解答する問題は全体的に難易度が高く、単なる解法暗記では太刀打ちできない可能性がある。また融合問題が出てくることもある。
それ以外の学科では標準的な問題が多い。
語句問題が出たこともある為、教科書に太字で載ってる語句は書けるようにすること。
====化学====
化学科、医学部等の専用問題以外は全体的に標準程度。
記述問題もそこそこ出題されてる為、典型的なものは書けるようにしておきたい。
専用問題はかなり難しく、煩雑な計算やマニアックな知識が問われる問題もある。さらに学校ではあまり扱われない合成高分子やアミノ酸等が出題されている。逆に近年は専用問題以外で高分子系は問われてない。
== 後期日程 ==
大半の学部で後期を実施している。
前期に比べて難易度は大きく跳ね上がる。
特に前期と比べて共通テストの比重が大きい学部が多いため、共通テストで高得点を取らないと挽回不可能になることもある。
後期試験の地球科学科は大学入試にしては珍しく地学が必須となっている。その為後期で考えてる人は注意。
'''小論文'''<br />
文学部で実施。試験時間は120分。
歴史学コースと行動科学コースで問題が異なる。
====行動科学コース====
大問数は1問。内容は英語の超長文である。設問は本文に対し70字で説明する、600字程度で自分の考えを述べる等といったものである。内容も専門的な物の為、難易度は高い。過去問を研究したり、普段から時事について関心を持つことが大切である(これは歴史学コース、法政経学部でも同じことが言える)。
====歴史学コース====
大問数は2問。1問目は和文、2問目は英文である。法政経学部等に比べると英語長文は長くないものの、当然専門的な内容なので難易度は高い。
大問1の設問はよくある小論文のような内容。大問2は下線部和訳や要約、数百字で自分の考えを説明するような設問が多い。
'''数学'''<br />
理学部数学科は180分で6問、工学部、医学部は120分で3~4問を解く。昔は医学部専用問題があったが、今後復活するかは不明。難易度は前期と同じレベルから東京科学大(またはそれ以上)レベルの問題まで様々である。
'''英語'''<br />
医学部のみ課される。試験時間は80分。医学部専用問題の為、医療系がテーマの長文が2題出題される。設問も難しく、医療系の英単語も覚えてないと辛いところが多い。
'''理科'''<br />
====物理====
見慣れない設定の問題が多いが、落ち着いて問題の状況を把握し、面倒な問題は後回しにすることが大切である。
また、大学受験では疎かにしやすい交流がよく出てることも特徴。
'''総合テスト'''<br />
法政経学部と理学部物理学科で課される。
====法政経学部====
試験時間は90分で、英語長文の問題だが社会科学や統計学等専門的なテーマの内容かつ超長文の為難易度は非常に高い。設問としては、空欄補充や下線部和訳、内容説明など一般的なものが多いが、計算問題が出てくることもある。この手の長文は類題が少なく、対策が難しい為、過去問研究をし、取れるところを確実に獲得すれば合格にたどり着けるだろう。
====理学部物理学科====
試験時間は150分。物理の問題だが、他の学部の物理と異なる点は数3Cも出題範囲ということ。
とはいえ、このレベルの物理学科を志望しているなら大きな弊害にはならないだろう。
いわゆる「数理物理」のようなものである。実際に説明があるとはいえ、2023年のように加速度が2回微分表記であったりする。また、原子も高頻度で出題されている。対策としては、過去問以外だと東京科学大(旧東京工業大学)や専門的な物理を出題する大学の過去問を解くのも有効である。
後期試験とはいえ近年合格点が高いこと(2024年で最低点の得点率は約75%)に注意。その為共通テストでボーダーを超えても、2次試験で7~8割程度取らないと合格できないため、必然的に高得点争いになる。
== 模試 ==
大学別模擬試験としては、東進が千葉大本番レベル模試を実施している。他の予備校(駿台、河合塾等)は千葉大模試を実施してないため注意。全国の千葉大志望者における自己の位置を知るのにもよいので積極的に受験することをお勧めする。
== 外部サイト ==
*[http://www.chiba-u.ac.jp/exam/ 千葉大公式サイト]
[[Category:大学入試|ちはたいたいさく]]
[[カテゴリ:千葉県]]
im8j8n5z1575ui8ru30gca67mv24sr4
263394
263393
2024-11-12T19:24:29Z
Ayhxuknbsijceivzdjhswh
66317
/* 前期日程 */
263394
wikitext
text/x-wiki
{{wikipedia|千葉大学}}
*[[日本の大学受験ガイド]] > [[千葉大対策]]
本項は、[[w:千葉大学|千葉大学]]の入学試験対策に関する事項である。
千葉大学は千葉県千葉市に拠点を置く総合大学である。東京高等工芸学校、千葉高等園芸学校を前身としているという背景から理系色の強い大学である。その他にも国立大学では唯一の法政経学部・園芸学部・看護学部・国際教養学部を有するユニークな学部・学科を多数持ち合わせている大学である。
また、全学部で留学を必須としている。
入試試験に関してであるが、上位受験生にとっては、どの科目も基礎を押さえておけば合格にたどりつけるが、一部難問も見られる。
== 共通テスト ==
学部で差はあるものの共通テストと2次試験の配点率は前期で概ね1:2、後期で概ね1:1としているところが多いので、少なくとも前期で75~80%かそれ以上、後期においては80%以上取れれば合格への希望が大きく開けてるだろう。ただし、これは一般的な目安であり上記の共通テスト得点率よりも低い場合でも2次試験で挽回できるので頑張って欲しい。
医学部と法政経学部のみ二段階選抜がある。
== 前期日程 ==
'''英語'''<br />
試験時間は80分。合格への鍵を握る科目は英語である。近年は全3問からなり、第1問と第2問は読解、第3問は文法(熟語)問題という形式が定着している。和文英訳は近年出題されてない。千葉大の読解問題は非常にシンプルな出題内容(例えば、下線部が指している内容を日本語で具体的かつ簡潔に記述・説明する、など)であるが、『超』長文と呼ぶべき量が出題される場合もあるので、対策をしておかないと時間内に終わらない可能性が高い。また、私大型の勉強もそれなりに補完関係にあるが、記述力をつけるために必ず過去問にも当たるべきである。
教育学部英語教育コースのみライティングが課される。制限時間は50分で与えられたトピックに対して250字程度の英語論述をするというもの。
なお、英検習得による加点がある。特に国際教養学部では英検準一級or一級取得かつCSEスコアが2500を超えるか、TEAPで375点以上取ると満点換算され、大きなアドバンテージとなる。
それ以外の学部でも(医学部除いて)実施されているが、持っていなくてもあまり差はつかないと思われる。
'''数学'''<br />
微分積分は毎年必ず出るので落とさないようにしたい。また、整数問題も頻出である。学部学科によって解答する問題が異なり、解法パターンの決まった問題から難度の高い問題まで出題される。文系学部は平素の学習は黄色チャートで十分であるが、理系学部は難度の高い問題も出題されるため青チャートを使用するとよい。今までの記述模試の復習も有効である。数学が苦手な受験生は教科書レベルにさかのぼって学習することで部分点は取れるだろう。
数学科と医学部専用問題は上位旧帝に匹敵するほどの難問になることがある。これらの学部を志望してる生徒は千葉大に限らずさらに上の大学の数学の問題も解くと良いだろう。
'''国語'''<br />
例年、現代文、古文、漢文の大問3問が出題されるパターンである。字数制限が付された上で記述解答させる問題の出題が形式化しているため、日頃から自分の考えを簡潔に表現できる力を身につけておくことが高得点への第一歩へとつながるであろう。また、漢文や古文を現代訳させる問題も頻出であるので日頃からコツコツ勉強し、古文単語や文法用法に関して知識を蓄えておくことが重要である。
'''理科'''<br />
理学部数学・情報数理学科と国際教養学部以外の理系受験生は「物理」「化学」「生物」「地学」の2科目を選択し、受験することになる。学部学科によって、受験する科目、解答する問題が違う。
なお薬学部、医学部では地学は解答できないため注意。
====物理====
理学部物理学科、医学部等が解答する問題は全体的に難易度が高く、単なる解法暗記では太刀打ちできない可能性がある。また融合問題が出てくることもある。
それ以外の学科では標準的な問題が多い。
語句問題が出たこともある為、教科書に太字で載ってる語句は書けるようにすること。
====化学====
化学科、医学部等の専用問題以外は全体的に標準程度。
記述問題もそこそこ出題されてる為、典型的なものは書けるようにしておきたい。
専用問題はかなり難しく、煩雑な計算やマニアックな知識が問われる問題もある。さらに学校ではあまり扱われない合成高分子やアミノ酸等が出題されている。逆に近年は専用問題以外で高分子系は問われてない。
== 後期日程 ==
大半の学部で後期を実施している。
前期に比べて難易度は大きく跳ね上がる。
特に前期と比べて共通テストの比重が大きい学部が多いため、共通テストで高得点を取らないと挽回不可能になることもある。
後期試験の地球科学科は大学入試にしては珍しく地学が必須となっている。その為後期で考えてる人は注意。
'''小論文'''<br />
文学部で実施。試験時間は120分。
歴史学コースと行動科学コースで問題が異なる。
====行動科学コース====
大問数は1問。内容は英語の超長文である。設問は本文に対し70字で説明する、600字程度で自分の考えを述べる等といったものである。内容も専門的な物の為、難易度は高い。過去問を研究したり、普段から時事について関心を持つことが大切である(これは歴史学コース、法政経学部でも同じことが言える)。
====歴史学コース====
大問数は2問。1問目は和文、2問目は英文である。法政経学部等に比べると英語長文は長くないものの、当然専門的な内容なので難易度は高い。
大問1の設問はよくある小論文のような内容。大問2は下線部和訳や要約、数百字で自分の考えを説明するような設問が多い。
'''数学'''<br />
理学部数学科は180分で6問、工学部、医学部は120分で3~4問を解く。昔は医学部専用問題があったが、今後復活するかは不明。難易度は前期と同じレベルから東京科学大(またはそれ以上)レベルの問題まで様々である。
'''英語'''<br />
医学部のみ課される。試験時間は80分。医学部専用問題の為、医療系がテーマの長文が2題出題される。設問も難しく、医療系の英単語も覚えてないと辛いところが多い。
'''理科'''<br />
====物理====
見慣れない設定の問題が多いが、落ち着いて問題の状況を把握し、面倒な問題は後回しにすることが大切である。
また、大学受験では疎かにしやすい交流がよく出てることも特徴。
'''総合テスト'''<br />
法政経学部と理学部物理学科で課される。
====法政経学部====
試験時間は90分で、英語長文の問題だが社会科学や統計学等専門的なテーマの内容かつ超長文の為難易度は非常に高い。設問としては、空欄補充や下線部和訳、内容説明など一般的なものが多いが、計算問題が出てくることもある。この手の長文は類題が少なく、対策が難しい為、過去問研究をし、取れるところを確実に獲得すれば合格にたどり着けるだろう。
====理学部物理学科====
試験時間は150分。物理の問題だが、他の学部の物理と異なる点は数3Cも出題範囲ということ。
とはいえ、このレベルの物理学科を志望しているなら大きな弊害にはならないだろう。
いわゆる「数理物理」のようなものである。実際に説明があるとはいえ、2023年のように加速度が2回微分表記であったりする。また、原子も高頻度で出題されている。対策としては、過去問以外だと東京科学大(旧東京工業大学)や専門的な物理を出題する大学の過去問を解くのも有効である。
後期試験とはいえ近年合格点が高いこと(2024年で最低点の得点率は約75%)に注意。その為共通テストでボーダーを超えても、2次試験で7~8割程度取らないと合格できないため、必然的に高得点争いになる。
== 模試 ==
大学別模擬試験としては、東進が千葉大本番レベル模試を実施している。他の予備校(駿台、河合塾等)は千葉大模試を実施してないため注意。全国の千葉大志望者における自己の位置を知るのにもよいので積極的に受験することをお勧めする。
== 外部サイト ==
*[http://www.chiba-u.ac.jp/exam/ 千葉大公式サイト]
[[Category:大学入試|ちはたいたいさく]]
[[カテゴリ:千葉県]]
dxi44g18af8f8yunyat084r12x5zk5l
263414
263394
2024-11-13T05:51:14Z
Ayhxuknbsijceivzdjhswh
66317
263414
wikitext
text/x-wiki
{{wikipedia|千葉大学}}
*[[日本の大学受験ガイド]] > [[千葉大対策]]
本項は、[[w:千葉大学|千葉大学]]の入学試験対策に関する事項である。
千葉大学は千葉県千葉市に拠点を置く総合大学である。東京高等工芸学校、千葉高等園芸学校を前身としているという背景から理系色の強い大学である。その他にも国立大学では唯一の法政経学部・園芸学部・看護学部・国際教養学部を有するユニークな学部・学科を多数持ち合わせている大学である。
また、全学部で留学を必須としている。
入試試験に関してであるが、上位受験生にとっては、どの科目も基礎を押さえておけば合格にたどりつけるが、一部難問も見られる。
== 共通テスト ==
学部で差はあるものの共通テストと2次試験の配点率は前期で概ね1:2、後期で概ね1:1としているところが多いので、少なくとも前期で75~80%かそれ以上、後期においては80%以上取れれば合格への希望が大きく開けてるだろう。ただし、これは一般的な目安であり上記の共通テスト得点率よりも低い場合でも2次試験で挽回できるので頑張って欲しい。
医学部と法政経学部のみ二段階選抜がある。
== 前期日程 ==
'''英語'''<br />
試験時間は80分。合格への鍵を握る科目は英語である。近年は全3問からなり、第1問と第2問は読解、第3問は文法(熟語)問題という形式が定着している。和文英訳は近年出題されてない。千葉大の読解問題は非常にシンプルな出題内容(例えば、下線部が指している内容を日本語で具体的かつ簡潔に記述・説明する、など)であるが、『超』長文と呼ぶべき量が出題される場合もあるので、対策をしておかないと時間内に終わらない可能性が高い。また、私大型の勉強もそれなりに補完関係にあるが、記述力をつけるために必ず過去問にも当たるべきである。
教育学部英語教育コースのみライティングが課される。制限時間は50分で与えられたトピックに対して250字程度の英語論述をするというもの。
なお、英検習得による加点がある。特に国際教養学部では英検準一級or一級取得かつCSEスコアが2500を超えるか、TEAPで375点以上取ると満点換算され、大きなアドバンテージとなる。
それ以外の学部でも(医学部除いて)実施されているが、持っていなくてもあまり差はつかないと思われる。
'''数学'''<br />
微分積分は毎年必ず出るので落とさないようにしたい。また、整数問題も頻出である。学部学科によって解答する問題が異なり、解法パターンの決まった問題から難度の高い問題まで出題される。文系学部は平素の学習は黄色チャートで十分であるが、理系学部は難度の高い問題も出題されるため青チャートを使用するとよい。今までの記述模試の復習も有効である。数学が苦手な受験生は教科書レベルにさかのぼって学習することで部分点は取れるだろう。
数学科と医学部専用問題は上位旧帝に匹敵するほどの難問になることがある。これらの学部を志望してる生徒は千葉大に限らずさらに上の大学の数学の問題も解くと良いだろう。
'''国語'''<br />
例年、現代文、古文、漢文の大問3問が出題されるパターンである。字数制限が付された上で記述解答させる問題の出題が形式化しているため、日頃から自分の考えを簡潔に表現できる力を身につけておくことが高得点への第一歩へとつながるであろう。また、漢文や古文を現代訳させる問題も頻出であるので日頃からコツコツ勉強し、古文単語や文法用法に関して知識を蓄えておくことが重要である。
'''理科'''<br />
理学部数学・情報数理学科と国際教養学部以外の理系受験生は「物理」「化学」「生物」「地学」の2科目を選択し、受験することになる。学部学科によって、受験する科目、解答する問題が違う。
なお薬学部、医学部では地学は解答できないため注意。
====物理====
理学部物理学科、医学部等が解答する問題は全体的に難易度が高く、単なる解法暗記では太刀打ちできない可能性がある。また融合問題が出てくることもある。
それ以外の学科では標準的な問題が多い。
語句問題が出たこともある為、教科書に太字で載ってる語句は書けるようにすること。
====化学====
化学科、医学部等の専用問題以外は全体的に標準程度。
記述問題もそこそこ出題されてる為、典型的なものは書けるようにしておきたい。
専用問題はかなり難しく、煩雑な計算やマニアックな知識が問われる問題もある。さらに学校ではあまり扱われない合成高分子やアミノ酸等が出題されている。逆に近年は専用問題以外で高分子系は問われてない。
== 後期日程 ==
大半の学部で後期を実施している。
前期に比べて難易度は大きく跳ね上がる。
特に前期と比べて共通テストの比重が大きい学部が多いため、共通テストで高得点を取らないと挽回不可能になることもある。
後期試験の地球科学科は大学入試にしては珍しく地学が必須となっている。その為後期で考えてる人は注意。
'''小論文'''<br />
文学部で実施。試験時間は120分。
歴史学コースと行動科学コースで問題が異なる。
====行動科学コース====
大問数は1問。内容は英語の超長文である。設問は本文に対し70字で説明する、600字程度で自分の考えを述べる等といったものである。内容も専門的な物の為、難易度は高い。過去問を研究したり、普段から時事について関心を持つことが大切である(これは歴史学コース、法政経学部でも同じことが言える)。
====歴史学コース====
大問数は2問。1問目は和文、2問目は英文である。法政経学部等に比べると英語長文は長くないものの、当然専門的な内容なので難易度は高い。
大問1の設問はよくある小論文のような内容。大問2は下線部和訳や要約、数百字で自分の考えを説明するような設問が多い。
'''数学'''<br />
理学部数学科は180分で6問、工学部、医学部は120分で3~4問を解く。昔は医学部専用問題があったが、今後復活するかは不明。難易度は前期と同じレベルから東京科学大(またはそれ以上)レベルの問題まで様々である。
'''英語'''<br />
医学部のみ課される。試験時間は80分。医学部専用問題の為、医療系がテーマの長文が2題出題される。設問も難しく、医療系の英単語も覚えてないと辛いところが多い。
'''理科'''<br />
====物理====
見慣れない設定の問題が多いが、落ち着いて問題の状況を把握し、面倒な問題は後回しにすることが大切である。
また、大学受験では疎かにしやすい交流がよく出てることも特徴。
'''総合テスト'''<br />
法政経学部と理学部物理学科で課される。
====法政経学部====
試験時間は90分で、英語長文の問題だが社会科学や統計学等専門的なテーマの内容かつ超長文の為難易度は非常に高い。設問としては、空欄補充や下線部和訳、内容説明など一般的なものが多いが、計算問題が出てくることもある。この手の長文は類題が少なく、対策が難しい為、過去問研究をし、取れるところを確実に獲得すれば合格にたどり着けるだろう。
====理学部物理学科====
試験時間は150分。物理の問題だが、他学部の物理と異なる点は数3Cも出題範囲ということ。
とはいえ、このレベルの物理学科を志望しているなら大きな弊害にはならないだろう。
いわゆる「数理物理」のようなものである。実際に説明があるとはいえ、2023年のように加速度が2回微分表記であったりする。また、原子も高頻度で出題されている。対策としては、過去問以外だと東京科学大(旧東京工業大学)等専門的な物理を出題する大学の過去問を解くのも有効である。
後期試験とはいえ近年合格点が高いこと(2024年で最低点の得点率は約75%)に注意。その為共通テストでボーダーを超えても、2次試験で7~8割程度取らないと合格できないため、必然的に高得点争いになる。
== 模試 ==
大学別模擬試験としては、東進が千葉大本番レベル模試を実施している。他の予備校(駿台、河合塾等)は千葉大模試を実施してないため注意。全国の千葉大志望者における自己の位置を知るのにもよいので積極的に受験することをお勧めする。
== 外部サイト ==
*[http://www.chiba-u.ac.jp/exam/ 千葉大公式サイト]
[[Category:大学入試|ちはたいたいさく]]
[[カテゴリ:千葉県]]
2nzennvzgv8et713waqd1btgrn0id0f
日本漢字能力検定
0
6797
263386
185093
2024-11-12T13:46:33Z
にくぬきカレー
84903
/* 受験後 */
263386
wikitext
text/x-wiki
{{Pathnav|試験|資格試験|frame=1}}
'''日本漢字能力検定'''(にほんかんじのうりょうけんてい)とは、日本漢字能力検定協会(以下、協会)が運営している検定。就職・進学では優遇される事もある。略して「'''漢検'''」とも呼ばれる。
学習する方法としては、公式の問題集などを使用して学習するとよい。
==各級の程度==
直近の改定は、2020年となる。
{|class="wikitable" cellpadding="4" cellspacing="0" style="font-size:100%;"
!style="background: #574e54; color: White;"|級
!style="background: #574e54; color: White;"|レベル
!style="background: #574e54; color: White;"|対象漢字数
!style="background: #574e54; color: White;"|合格基準
!style="background: #574e54; color: White;"|備考
|-
!1
|大学・一般レベル||6000
| rowspan="3" | 200点満点中<br>80%程度||目安はJIS第1・第2・第3・第4水準漢字
|-
!準1
|大学・一般レベル||3000||目安は「常用漢字(旧字・異体字も)+人名用漢字」
|-
!2
|高校卒業程度||2136||常用漢字が全て読み書き活用ができるレベル
|-
!準2
|高校在学程度||1940
| rowspan="6" | 200点満点中<br>70%程度||
|-
!3
|中学校卒業程度||1607||小学校・中学校ですべての常用漢字を学習するが、ここで出題されるのはその約75%ほどである。
|-
!4
|中学校在学程度||1322||
|-
!5
|小学校卒業程度||1006||
|-
!6
|小学5年修了程度||825||
|-
!7
|小学4年修了程度||640||
|-
!8
|小学3年修了程度||440
| rowspan="3"| 150点満点中<br>80%程度||
|-
!9
|小学2年修了程度||240||
|-
!10
|小学1年修了程度||80||
|-
|}
* 5級~10級は、各学年配当漢字と同じである。各級(学年)配当漢字は、下記を参考にしてほしい。
** [[小学校国語/漢字/6年生で習う漢字|5級(6年生)]]
** [[小学校国語/漢字/5年生で習う漢字|6級(5年生)]]
** [[小学校国語/漢字/4年生で習う漢字|7級(4年生)]]
** [[小学校国語/漢字/3年生で習う漢字|8級(3年生)]]
** [[小学校国語/漢字/2年生で習う漢字|9級(2年生)]]
** [[小学校国語/漢字/1年生でならう漢字|10級(1年生)]]
===問題形式===
漢検では、漢字の読み書きだけでなく、次のような分野の問題が出題される。
* 漢字の画数・筆順(5級以下)
* 部首・熟語の構成
* 類義語・対義語
* 四字熟語(5級以上、3級以上では典拠がはっきりしているもの)
* 熟字訓・当て字(4級以上)
* 誤字訂正(4級以上)
* 2級以上では國(国)・鹽(塩)・交叉(交差)などの別の書き方(おもに旧字・異体字)、1級では故事成語・{{Ruby|諺|ことわざ}}が出題される。
7級以上は別紙の解答用紙で解答し、8級以下は問題用紙兼解答用紙に答えを記入する。また2級~4級の一部問題では、マーク式の問題がある。
* 10級~5級(小学校レベル)の漢字の読みは、小学校で習うもののみである。
**中学校で習う読みは4級以上で出題、高等学校で習う読みは準2級以上で出題となる。
* 丁寧な字で解答すること。2級以下の解答は、常用漢字表と同じ字体で行う(旧字体での解答は認められない)。また、現在仮名遣いで行う。
**2010年に追加された漢字(2級)において、一部旧字体が認められている漢字がある。
**明朝体・書写による違いが認められている。
* 試験時間は8級以下は40分、7級以上は60分である。
== 受験方法 ==
漢検は、年3回・のべ13日<ref>準会場専用実施日(10日)含み、同じ期(第x回)には一度しか受験できない。</ref>実施されている。公開会場受験は、6月・10月・1~2月に行われている。
===申し込みの検討~申し込み===
[[File:合格者 出現 (16944489440).jpg|thumb|漢検認定準会場の表示]]
受験する方法は主に2種類ある。いずれも、筆記試験よる試験が行われる。
# 協会が設置する会場で受験(公開会場受験。個人受験ともいう)
# 学校や学習塾などが実施する会場で受験(準会場受験。団体受験ともいう)
* ただし、準1級以上は準会場で受験できない。
また2~7級限定で、[https://www.kanken.or.jp/kanken/cbt/ CBT]で受験することも可能。
申し込みは、公開会場ではインターネット・コンビニエンスストア・書店などで行える。準会場受験は、その団体の担当者に問い合わせる。CBT受験は、CBT-Solutionsから申し込む。
====検定料・検定実施時間====
検定料および検定時間割は、次の通りとなる。ただし、検定時間は日曜に実施する場合を除き、時間帯は自由に決めることができる。
{|width="450px"
|-
| width="10%" style="vertical-align:top;"|
{| class="wikitable"
|+ 検定料金
|-
! 級 !! 料金(円)
|-
| 1 || 5,000
|-
| 準1 || 4,500
|-
| 2 || 3,500
|-
| 準2~4 || 2,500
|-
| 5~7 || 2,000
|-
| 8~10 || 1,500
|}
| width="10%" style="vertical-align:top;"|
{| class="wikitable"
|+ 検定時間
|-
! 級 !! 時間
|-
| 2 || 10:00~11:00
|-
| 準2 || 11:50~12:50
|-
| 8~10 || 11:50~12:30
|-
| 1,3,5,7 || 13:40~14:40
|-
| 準1,4,6 || 15:30~16:30
|}
|}
===受験前~受験日当日===
受験数日前には、自宅に受験票が届く。そこには、受験票(受験番号・集合時間などが記載)と受験会場の場所が記載されている。受験会場に行くときは、周辺に迷惑にならないようになるべく公共交通機関を利用しましょう。
準2級以上を受験する際は、受験票に顔写真が必要になる(準会場を除く)。
===受験後===
受験5日後には、公式サイトで解答速報が見られるようになり、30日後には合否のみ確認することができる。受験後40日には、合否結果資料が届く。合格していれば、合格証と合格証明書が同封されている。合否結果資料には自分の点数などが記載されている。
また1級に合格すると、漢字検定協会が出版している雑誌「漢検ジャーナル」に氏名が掲載される(拒否することも可能)。
==その他==
その他受験に関することで分からないことがある場合は、直接問い合わせていただきたい。
===脚注===
<references/>
==関連リンク(参考元)==
{{Wikipedia|日本漢字能力検定}}
* [[W:財団法人日本漢字能力検定協会]]‐ウィキペディアのページ
* [https://www.kanken.or.jp/kanken/ 日本漢字能力検定協会ホームページ]]
* [[Wikijunior:漢字検定のコツ]]
* 漢検要覧(日本漢字能力検定協会 発行)
{{DEFAULTSORT:にほんかんしのうりようくけんてい}}
[[Category:漢字]]
[[Category:語学系資格]]
45h385ec3xemb2ttlfm308eyvbbljgy
労働基準法第61条
0
12398
263399
239775
2024-11-12T22:42:05Z
Tomzo
248
263399
wikitext
text/x-wiki
[[コンメンタール]]>[[労働基準法]]
==条文==
(深夜業)
;第61条
# 使用者は、満18歳に満たない者を午後10時から午前5時までの間において使用してはならない。ただし、交替制によって使用する満16歳以上の男性については、この限りでない。
# 厚生労働大臣は、必要であると認める場合においては、前項の時刻を、地域又は期間を限って、午後11時及び午前6時とすることができる。
# 交替制によって労働させる事業については、行政官庁の許可を受けて、第1項の規定にかかわらず午後10時30分まで労働させ、又は前項の規定にかかわらず午前5時30分から労働させることができる。
# 前3項の規定は、[[労働基準法第33条|第33条]]第1項の規定によって労働時間を延長し、若しくは休日に労働させる場合又は[[労働基準法別表第1|別表第1]]第6号、第7号若しくは第13号に掲げる事業若しくは電話交換の業務については、適用しない。
# 第1項及び第2項の時刻は、[[労働基準法第56条|第56条]]第2項の規定によって使用する児童については、第1項の時刻は、午後8時及び午前5時とし、第2項の時刻は、午後9時及び午前6時とする。
==解説==
:年少者福祉の観点から、深夜労働に関する制限。
:'''原則''':午後10時から午前5時まで使用してはならない。
:*対象:中学校卒業後<ref>[[労働基準法第56条|第56条]]第1項に「使用者は、児童が満15歳に達した日以後の最初の3月31日が終了するまで、これを使用してはならない。」と定める。</ref>、満18歳未満
:#'''例外1''':交替制によって使用する16歳以上の男性
:#:'''交替制''';職場の営業時間や稼働時間が法定労働時間(通常1日8時間)を超える場合に、時間帯を区切り交替のシフトで勤務する制度
:#'''例外2''':厚生労働大臣許可により、地域・期間を区切り、使用禁止時間帯を午後11時から午前6時までとする場合(適用例なし)
:#'''例外3''':「交替制」によって労働させる事業について[[#許可|行政官庁の許可]]を受け、午後10時30分まで使用できる。
:#'''例外4''':[[労働基準法第33条|第33条]]第1項の規定(<u>災害等による臨時の必要がある場合の時間外労働</u>)によって労働時間を延長し、若しくは休日に労働させる場合。
:#'''例外5''':非適用業種
:#::農業(第6号)
:#::畜産・養蚕・水産業(第7号)
:#::医療・福祉業(第13号)
:#::電話交換業務
:*対象:中学校卒業前<ref>[[労働基準法第56条|第56条]]第2項に、第1項の例外である中学校卒業以前であっても就労できる場合を定める。</ref>
:*:午後8時から午前5時まで使用してはならない<ref>厚生労働大臣許可により、地域・期間を区切り、使用禁止時間帯を午後9時から午前6時までとすることはできるが、適用例はない。</ref>。若年の芸能人が午後8時以降の収録に参加できないのは、本条項による。
==参照条文==
*[[年少者労働基準規則第5条]]<span id="許可"/>
*:法第61条第3項の規定による許可は、様式第3号の交替制による深夜業時間延長許可申請書により、所轄労働基準監督署長から受けなければならない。
* [[労働基準法第119条]] 罰則 - 6箇月以下の拘禁刑(旧・懲役)又は30万円以下の罰金
==判例==
==脚注==
<references/>
----
{{前後
|[[労働基準法|労働基準法]]
|[[労働基準法#6|第6章 年少者]]
|[[労働基準法第60条]]<br>(労働時間及び休日)
|[[労働基準法第62条]]<br>(危険有害業務の就業制限)
}}
{{stub|law}}
[[category:労働基準法|061]]
2c0xa99y6zxvxp5xof352q0qptm0yzo
中学校社会 地理/日本の諸地域 近畿地方
0
19170
263379
263367
2024-11-12T11:59:57Z
にくぬきカレー
84903
/* 伝統工芸 */
263379
wikitext
text/x-wiki
== 地域データ ==
[[File:HeijokyusekiDaigokuden.jpg|250px|thumb|left|平城京の大極殿(だいこくでん)。再建。奈良県 奈良市。]]
[[File:Naiku 01.JPG|thumb|200px|伊勢神宮(いせじんぐう)の一部。三重県 伊勢市。]]
[[ファイル:Amanohashidate view from Mt Moju02s3s4592.jpg|thumb|right|天橋立(あまの はしだて)、京都府]]
* 三重県
県庁所在地: 津(つ)市
* 滋賀県
県庁所在地: 大津(おおつ)市
* 京都府
府庁所在地: 京都市
* 大阪府
府庁所在地: 大阪市
*兵庫県
県庁所在地: 神戸(こうべ)市
*奈良県
県庁所在地: 奈良市
*和歌山県
県庁所在地: 和歌山市
== 気候 ==
気候は、北部・中央部西部・中央部東部・南部に分けることができる。
* 北部・・・日本海に面し、夏は南東の季節風により比較的乾燥、冬は北西の季節風の影響で雪が多く降る。山陰や北陸の海岸部の気候と共通する。
* 中央部西部・・・兵庫県南部や大阪平野は瀬戸内の気候で、雨が少ない。
* 中央部東部・・・内陸は盆地を形成し(京都盆地、奈良盆地、琵琶湖沿岸)は夏・冬/ 昼夜の寒暖差が大きい
* 南部・・・夏は南東の季節風の影響で雨が多い。特に紀伊山地の南は日本有数の多雨地域。沿岸は黒潮(日本海流)の影響で冬も温暖。
== 文化 ==
[[File:Kiyomizu Temple - 01.jpg|thumb|200px|清水寺(きよみずでら)。世界文化遺産。京都府。]]
平城京・平安京などの古都があったため、古い町並みが多く、それらが世界文化遺産に登録されている場合もあり、世界遺産が多い。また、京都は観光名所にも、なっている。
大阪は、江戸時代は商業の中心地であり、「'''天下の台所'''」とも言われた。明治時代の以降も、西日本の商業の中心地になったので、そのような経緯もあり、近畿地方の商業では、卸売(おろしうり)が大阪を中心にして発達している。
<gallery widths="200px" heights="200px">
File:Imaichō Kashihara JPN 002.jpg|今井町(いまいちょう)、奈良県 橿原(かしはら)市。 歴史的に古い建物が多く残っている町である。
File:Kyoto Gion Matsuri J09 060.jpg|京都の祇園祭(ぎおん まつり)。京都市の祇園祭りは、7月1日からほぼ一ヶ月のあいだ神輿(もこし)、山ぼこを持った人たちが街を歩く。京都市にある八坂神社(やさか じんじゃ)のお祭りである。
ファイル:Choueke house02 1920.jpg|異人館(いじんかん)通り。神戸市。山本通り~手前旧ハンセル邸(シュウエケ邸)。<br />これら異人館は、日本国から重要伝統的建造物群 保存地区として選定されている。
ファイル:Himeji Oshiro Matsuri August09 191.jpg|姫路市(ひめじし)の市街から見た姫路城(ひめじじょう)。兵庫県。写真の青い かざり は「姫路お城祭」の期間中なので。
ファイル:Danjogaran Koyasan12n3200.jpg|高野山(こうやさん)。和歌山県 高野町(こうやちょう)。空海(くうかい)が開いた寺である。
</gallery>
== 町並み ==
[[ファイル:PortIslandCloseup 2003262.jpg|thumb|right|250px|兵庫県 神戸市の人工島、ポートアイランド。中央がポートアイランド。その南の人工島は神戸空港で、現在は完成している]]
<span style="font-size: large;">大阪</span>・<span style="font-size: large;">神戸</span>・<span style="font-size: large;">京都</span>が、この近畿地方の都市圏である。
* '''ニュータウン'''
第二次大戦後は、平地に住宅地が足りなくなったため、山間部を切り開いて、千里(せんり)ニュータウン、泉北(せんぼく)ニュータウンなどが作られた。
* 大阪の都心回帰
1960~70年代は郊外のニュータウンに人口が流出していったが、しかし21世紀ごろから大阪都心に高層マンションが増え、大阪の都心の人口が回復している、と言われる。
* 臨海部の埋め立て地
臨海部は埋め立ても多い。また、ニュータウンの開発の際に、切り崩された山の土を使って、埋立地の'''ポートアイランド'''が作られた。
* 阪神・淡路大震災
1995年(平成7年)の<span style="font-size: large;">阪神・淡路大震災</span>(はんしん・あわじ だいしんさい)では震度7の都市直下型の大地震が起きた。
そもそも震度7自体が、この阪神・淡路大震災で新設された。
震災後の復興では、避難場所を増やしたり、防災のために道路を拡張したりと、防災を意識した街づくりがされた。
== 工業 ==
* 阪神工業地帯
大阪湾の側の臨海部や埋め立て地には、重化学工業の工場が多く、鉄鋼や石油化学の関連が多い。これら大阪湾の周辺の工業地帯が、阪神工業地帯(はんしん こうぎょうちたい)として知られる。
他の工業地帯・地域とちがい、自動車の工場は少ない。(ないわけではない。自動車メーカーのダイハツは大阪の企業。)
第二次大戦後は重化学工業が発達したが、戦前の関西では糸を原材料にする繊維工業(せんい こうぎょう)が発達していた。
[[ファイル:HARDLOCK nut.PNG|thumb|250px|right|ハードロックナット。クサビの原理を応用し、凹凸(おうとつ)の一対から成り立っており、ゆるみづらいことから、多くの工業製品のナットに採用されている。]]
* 中小工場
また、重化学工業の大工場とはべつに、機械工業などの<span style="font-size: large;">中小工場</span>が、<span style="font-size: large;">東大阪</span>(ひがし おおさか)市などに多い。人工衛星「まいど1号」なども開発され、打ち上げられた。近年では、ハードロックナットも有名。
* 家電メーカーの大企業
内陸部の門真(かどま)の周辺に、大手家電メーカーのパナソニックの工場があるので、関連の電子部品の工場も多い。
三重県の亀山にシャープの液晶テレビ工場がある。
液晶パネルや太陽電池などの生産・開発が、これらの地域でさかんである。2022年現在は液晶パネル工場は物流センター変わっている
:(※注意 家電業界は、近年は国際競争がきびしく、そのため本記事の執筆時(2014年当時)の本文の記述と、読者が読んだ時点での現状が、大きく違っている可能性がある。)
:※ 大阪に、カジノ構想があるが、受験研究社はこれを、不況で空き地になった大工場の敷地の活用だろうと分析している。液晶パネルの不況など、上記では一部は物流センターに変わってるとあるが、これを他にもカジノに流用しようという構想だろうという事。「大阪湾パネルベイ」構想という液晶の産地にする構想があったが、しかしこれが液晶の不況により、大変な事になっている。
== 地形など ==
[[ファイル:Maizuru bay.jpg|thumb|240px|京都府、舞鶴湾(まいづるわん)のリアス海岸]]
北部の海岸や、南部の海岸には、<span style="font-size: large;">リアス海岸</span>が多く見られる。
南東部の三重県の<span style="font-size: large;">志摩半島</span>(しま はんとう)や<span style="font-size: large;">英虞湾</span>(あごわん)では、真珠の養殖がさかんである。
近畿中部の滋賀県にある<span style="font-size: large;">琵琶湖</span>(びわこ)は日本一の広さの湖。高度経済成長期のころなど、かつて、生活排水などで琵琶湖に赤潮(あかしお)が大量に発生した。赤潮とは、プランクトンの大量発生で水面が赤くにごって見える現象である。近年でも、ときどき赤潮が発生する。赤潮が大量に発生する原因は、栄養であり、水の富栄養化(ふ えいようか)が原因である。廃水にふくまれる、りん や 窒素 などが原因と考えられている。合成洗剤の廃水に、これらの成分が多い。
== 農業など ==
和歌山県では、<span style="font-size: large;">みかん</span>、梅などの生産がさかん。
畜産では、牛肉の生産がさかん。三重県では松坂牛(まつざかぎゅう、まつざかうし)。他の地域では、神戸牛(こうべぎゅう)。近江牛(おうみぎゅう)など。これらの肉牛は高級牛として日本全国で有名である。
昔は林業がさかんであり、杉やひのきなどの木材を生産していた。代表例としては奈良県の吉野杉(よしのすぎ)など。
しかし第二次大戦後は、外国からの輸入木材による価格の低下により、国産木材の需要は低迷した。また、林業の就業者の高齢化も、問題になっている。
:(※ 社会科の範囲外: ) なお、近畿地方にかぎらず、じつは日本の畜産で飼育されている肉牛の品種は、明治時代に日本の牛を外国の牛と交配させて品種改良させた品種である。(技術家庭科の東京書籍の検定教科書に、そう書いてある。) 日本の多くの肉牛の品種は、けっして日本古来の牛そのままの品種ではない。
:なので、よく日本産の牛を世間的には「和牛」(わぎゅう)というが、それは単に、日本で明治時代以降に長らく飼育されてきた品種という程度の意味でしかない。
== 伝統工芸 ==
*京都府の京友禅(きょうゆうぜん)、西陣織(にしじんおり)、清水焼(きよみずやき)など。
* 滋賀県の信楽焼(しがらきやき)
など
かつて都があり、文化の中心としての機能も果たしていたため伝統工芸品もかなり多い。
== コリアタウンと中華街 ==
日本には、外国人も多く暮らしている。そのうちの多くは、中国人(約64万人)と韓国人・朝鮮人(合わせて約50万人)である。
近年では、フィリピン(約20万人)やブラジル(約18万人)やベトナム(約8万人)などからの出稼ぎ労働者などが増えている。
近畿地方では、歴史的な理由から、韓国・朝鮮国籍の居住者が多い。特に、大阪のあたりに、在日の韓国・朝鮮人が多い(受験研究社)。
[[ファイル:Ikuno Korea Town04.jpg|thumb|right|180px|生野コリアタウンの商店街の百済門(くだらもん)]]
* コリアタウン
大阪の生野(いくの)区の、鶴橋(つるはし)地域や今里(いまざと)新地地域には、韓国籍・朝鮮国籍の在日韓国人・朝鮮人が多く住む、'''コリア タウン'''がある。なお、神戸市の長田区にもコリアタウンがある。
在日韓国人・朝鮮人が多く日本に来た理由には、おもに以下のパターンがある。
# 第二次大戦の戦前・戦中の、日本による朝鮮半島統治時代に、韓国人・朝鮮人が仕事をもとめて日本に来た。または、連れて来られた。
# 戦後の朝鮮戦争で、朝鮮半島の民衆が、戦争の難を逃れるために、密入国などで日本に来た。
# その他。
第二次大戦前の朝鮮人・韓国人は、もともと仕事として、工場の労働力や、土木工事の労働力として日本に仕事に来た。阪神工業地帯のあたりでは、低賃金の労働者や重労働の労働者が多く必要とされていた。そこで韓国の労働者が、これら低賃金・重労働の仕事に応募した。
当時の朝鮮半島は経済発展が日本よりも遅れており、そのため日本からすれば、低賃金で韓国人・朝鮮人を働かせることが出来た。
今でこそ阪神工業地帯では化学工場や電子機器の工場が多いが、戦前の阪神工業地帯は糸を原料にする紡績業などの繊維工業や、機械工業が発展していた工業地帯であった。
今でこそ、日本の工業製品には高品質を売りにした高価格の工業製品が多いが、戦前の当時は低価格を売りにした工業製品が多かった。そのため、日本人ですら貧しい家庭の出身者などは、低賃金で重労働で働かされた。戦前の日本の輸出品として主要であった生糸(きいと)も、低賃金で女工(じょこう)などを働かして生産されたものであった。
:予備知識: 1910年に日本が韓国(当時は「大韓帝国」と国号を名乗ってた。)を併合して、日本が朝鮮半島を統治したので(<span style="font-size: large;">韓国併合</span>)、それにより多くの韓国人の生活に変化があった。
当時は朝鮮半島が韓国併合により日本国の一部になっていたので、今で言うと日本の一地方から低賃金の労働者を雇い入れたような出来事であった。
さて、韓国のチェジュ島(済州島)が、韓国から日本に来る際の経由地点になっていたので、当時の韓国人・朝鮮人労働者の出身地にはチェジュ島が多い。
第二次大戦後、韓国と北朝鮮が独立し、また戦争(第二次世界大戦)も終わったので、戦前から日本にいた在日韓国人・朝鮮人は、朝鮮半島への帰国が出来るようになった。また日本国への国籍の帰化も認められた。なので、当時、日本にいた多くの在日韓国人・朝鮮人は、朝鮮半島に引き上げたり、あるいは日本国に帰化した。
このとき、そのどちらもせず、つまり朝鮮半島に帰国もせず、また日本国に国籍を帰化もしない人もいて、日本に残り続けた。そのような朝鮮半島出身の人々が、今でも在日韓国人・朝鮮人の先祖として続いている。
戦後に、朝鮮戦争などを逃れて、日本に来た在日韓国人・朝鮮人も、これら戦前から日本に移り住んでいた韓国人・朝鮮人を頼って来たので、生野を中心に コリアタウン になっていった。コリアタウンの商店街では現在ではキムチや韓国風焼き肉など韓国料理を売る料亭なども多い。
今でこそ生野の鶴橋地域や今里新地地域はコリアタウンが有名だが、もともと、生野は工場労働者などの住む町であった。今でも、コリアタウンの外側の生野区および周辺で、工場は多い。
* 中華街
[[画像:Kobe-Nankinmachi.JPG|thumb|300px|神戸市の中華街「南京町」の一部。]]
もともと、近畿地方には、兵庫県に神戸港があったため、神戸の周辺地区は外国人の居留者も多かった。そのためか、神戸には中華街「南京町」(なんきんまち)もある。
ただし、近代に兵庫の外国人の居留地の(当時の)高級住宅街にいたヨーロッパ人やアメリカ人たちは、現在は住んでおらず、観光地になっている。古い洋風建築の観光地になっている。
[[Category:中学校地理|にほんのしよちいき きんきちほう]]
[[カテゴリ:日本の地理]]
0wegpv6i7soov31xzf58u9i3llp8y13
高等学校古典B/漢文/鴻門之会
0
21173
263408
262298
2024-11-13T02:28:45Z
~2024-12536
84909
/* 語句 */
263408
wikitext
text/x-wiki
:'''{{Ruby|鴻門之会|こうもんのかい}}'''
『史記』項羽本紀
::{{Ruby|司馬遷|しばせん}}
== これまでのあらすじ ==
{{Ruby|秦|しん}}の始皇帝の死後、様々な者が、次の皇帝の座を狙って、中国国内で反乱が起きた。
皇帝の座を狙う者たちの中に、{{Ruby|項羽|こうう}}と{{Ruby|劉邦|りゅうほう}}がいた。
さて、反乱軍は秦軍と戦い、各地で勝利をおさめ、反乱軍の占領地は広まっていき、そして反乱軍はとうとう秦の都の{{Ruby|咸陽|かんよう}}に迫った。
反乱軍の暫定的なリーダーだった、楚の懐王は、関中を先に占領した者を、関中の王としよう、と決めた。このため、各地の反乱軍が、関中を目指した。
項羽は北側から関中に向かい、劉邦は南側から関中に向かった。
反乱軍の中で、{{Ruby|咸陽|かんよう}}を先に占領したのは、{{Ruby|劉邦|りゅうほう}}の軍だった。
劉邦もまた、天下取りを狙っている。
一方、項羽たちは{{Ruby|函谷関|かんこくかん}}に到着したが、劉邦の軍が守備しており、項羽たちは、その先の{{Ruby|関中|かんちゅう}}に進めない。
項羽は怒って、関所ごと、劉邦の軍を攻撃した。そして項羽軍は、これから本格的に、劉邦軍に攻め込もうとした。
この時点では、劉邦の軍勢よりも、項羽の軍勢の方が強大であり、そのため、もし項羽軍がこれから本格的に攻め込んできたら、劉邦軍に勝ち目は無い。
項羽の親戚の{{Ruby|項伯|こうはく}}は、劉邦軍の張良と親しい付き合いがあったので、項伯は、この項羽軍の劉邦軍への侵攻計画を伝えた。
この緊急の知らせを聞いた劉邦は、さっそく、{{Ruby|和睦|わぼく}}の申し入れを、項伯に伝えた。そして、項伯は、その劉邦からの和睦の申し出を項羽に伝えた。
その後、劉邦が停戦のため、項羽に面会を申し込み、そして{{Ruby|鴻門|こうもん}}にて、ある日の朝、項羽と劉邦との面会が始まった。
== 予備知識 ==
:「{{Ruby|沛公|はいこう}}」 = 「{{Ruby|劉邦|りゅうほう}}」
である。
この「鴻門の会」の時点で、項羽と劉邦が面会中。
これから、項王の参謀である{{Ruby|范増|はんぞう}}は、劉邦が将来の項王の天下取りでライバルになり邪魔になるだろうと考え、項羽の部下に命じて、劉邦を殺そうとする。
范増は、項羽に、目配せで劉邦の暗殺計画を伝えたが、項羽はこの暗殺計画を採用しなかった。
范増は、項羽の手下の{{Ruby|項荘|こうそう}}に、劉邦の暗殺を命令する。
劉邦が面会中なので、項荘は、項荘が武器を持った状態で劉邦に近づくために、「もてなしをしたいが、戦場なので武器しかないので、{{Ruby|剣|つるぎ}}の{{Ruby|舞|ま}}いをしたい」などのような事をいって、剣舞を{{Ruby|装|よそお}}う。
しかし、{{Ruby|項伯|こうはく}}は、劉邦を守るために、項伯も舞いに参加する。
項伯は項羽の親戚だが、劉邦の参謀の{{Ruby|張良|ちょうりょう}}に恩がある。なので、項伯は劉邦を助けようとしているわけである。
----
これまでの人物を整理すると
*劉邦を殺したい人
范増、項荘
*劉邦を守りたい人
張良、項伯
*その他
項羽(劉邦の殺害計画には興味がない)、劉邦(狙われている本人)
== 原文 ==
沛公、旦日従百余騎、来見項王。至鴻門、謝曰、「臣与将軍戮力而攻秦。将軍戦河北、臣戦河南。然不自意、能先入関破秦、得復見将軍於此。今者有小人之言、令将軍与臣有郤。」項王曰、「此沛公左司馬曹無傷言之。不然、籍何以至此。」
項王即日因留沛公、与飲。項王・項伯東嚮坐、亜父南嚮坐。亜父者范増也。沛公北嚮坐、張良西嚮侍。范増数目項王、舉所佩玉玦、以示之者三。項王黙然不応。范増起、出召項荘、謂曰、「君王為人不忍。若入前為寿。寿畢、請以剣舞、因撃沛公於坐殺之。不者、若属皆且為所虜。」荘則入為寿。寿畢曰、「君王与沛公飲。軍中無以為楽。請以剣舞。」項王曰、「諾。」項荘抜剣起舞。項伯亦抜剣起舞、常以身翼蔽沛公。荘不得撃。
於是張良至軍門、見樊噲。樊噲曰、「今日之事、何如。」良曰、「甚急。今者項荘抜剣舞、其意常在沛公也。」噲曰、「此迫矣。臣請、入与之同命。」噲即帯剣擁盾入軍門。交戟之衛士欲止不內。樊噲側其盾以撞、衛士仆地。噲遂入、披帷西嚮立、瞋目視項王、頭髪上指、目眦尽裂。項王按剣而跽曰、「客何為者。」張良曰、「沛公之参乗樊噲者也。」項王曰、「壮士。─賜之卮酒。」則与斗卮酒。噲拝謝、起、立而飲之。項王曰、「賜之彘肩。」則与一生彘肩。樊噲覆其盾於地、加彘肩上、抜剣切而啗之。
項王曰、「壮士。能復飲乎。」樊噲曰、「臣死且不避、卮酒安足辞。夫秦王有虎狼之心、殺人如不能舉、刑人如恐不勝、天下皆叛之。懐王与諸将約曰、『先破秦入咸陽者王之。』今沛公先破秦入咸陽、毫毛不敢有所近、封閉宮室、還軍覇上、以待大王来。故遣将守関者、備他盗出入与非常也。労苦而功高如此、未有封侯之賞、而聴細説、欲誅有功之人、此亡秦之続耳。窃為大王不取也。」項王未有以応、曰、「坐。」樊噲従良坐。坐須臾、沛公起如廁、因招樊噲出。
沛公已出、項王使都尉陳平召沛公。沛公曰、「今者出、未辞也、為之柰何。」樊噲曰、「大行不顧細謹、大礼不辞小譲。如今人方為刀俎、我為魚肉、何辞為。」於是遂去。乃令張良留謝。良問曰、「大王来何操。」曰、「我持白璧一双、欲献項王、玉斗一双、欲与亜父。会其怒、不敢献。公為我献之。」張良曰、「謹諾。」
当是時、項王軍在鴻門下、沛公軍在覇上、相去四十里。沛公則置車騎、脱身独騎、与樊噲、夏侯嬰、靳彊、紀信等四人持剣盾歩走、従酈山下、道芷陽間行。沛公謂張良曰、「従此道至吾軍、不過二十里耳。度我至軍中、公乃入。」
沛公已去、間至軍中、張良入謝、曰、「沛公不勝桮杓、不能辞。謹使臣良奉白一双、再拝献大王足下、玉斗一双、再拝奉大将軍足下。」項王曰、「沛公安在。」良曰、「聞大王有意督過之、脱身独去、已至軍矣。」項王則受璧、置之坐上。亜父受玉斗、置之地、抜剣撞而破之、曰、「唉。豎子不足与謀。奪項王天下者、必沛公也。吾属今為之虜矣。」沛公至軍、立誅殺曹無傷。
== 一 ==
=== 現代語訳 ===
沛公(はいこう)は翌朝、百余騎(ひゃくよき)を従え、やってきて項王(こうおう)に面会しようとし、鴻門(こうもん)に到着した。
(沛公が項王に)謝罪して言うには、「私は将軍と協力して秦を攻撃しました。将軍は黄河(こうが)の北方(ほっぽう)で戦い、私は黄河の南方(なんぽう)で戦いました。しかしながら、自分でも予想してなかったことに、(私が)先に関中に入って秦を倒すことに成功して、再び将軍(=項羽)に、この地でお会いできるとは。今、つまらぬ人間が告げ口をして、将軍と私を仲違いさせようとしています。」と(言った)。
項王が言うには、「そのことは沛公の左司馬(さしば)の曹無傷(そうむしょう)から、それ(=天下取りにて、沛公が項羽を出し抜こうとしている)を聞いたのだ。そうでなければ、どうして私がこういう事(=沛公軍に攻撃)をするに至るでしょうか。(いや、攻撃するはずがない。)」
=== 書き下し文 ===
沛公(はいこう)、旦日(たんじつ)百余騎(ひゃくよき)を従へ(したがえ)、来たり(きたり)て項王(こうおう)に見えん(みえん)とし、鴻門(こうもん)に至り(いたり)、
謝(しゃ)して曰はく(いわく)「臣(しん)将軍(しょうぐん)と力(ちから)を戮せて(あわせて)秦(しん)を攻む(せむ)。
将軍は河北(かほく)に戦ひ(たたかい)、臣(しん)は河南(かなん)に戦ふ。
然れども(しかれども)自ら(みずから)意はざりき(おもわざりき)、能く(よく)先(まず)関(せき)に入(い)りて秦(しん)を破り(やぶり)、復た(また)将軍に此(ここ)に見ゆる(まみゆる)ことを得ん(えん)とは。今者(いま)、小人(しょうじん)の言(げん)有り。将軍をして臣と郤(げき)有らしむ(あらしむ)。」と。
項王(こうおう)曰はく、「此れ(これ)沛公の左司馬(さしば)曹無傷(そうむしょう)之(これ)を言ふ(いふ)。然らずんば(しからずんば)、籍(せき)何(なに)を以て(もって)此(ここ)に至らん(いたらん)。」と。
=== 語彙・読解 ===
* 復た(まタ) - 再び(ふたたび)。
:
*復た(また)将軍に此(ここ)に見ゆる(まみゆる)を得ん(えん)
この文での「此」(ここ)とは鴻門(こうもん)のこと。
:
ここでの「得」とは、機会に恵まれるということ。項王と面会できた、という機会について。一方、能力があって「〜できる」という場合は「能」を用いる。
* 不然(しかラずンバ) - そうでなければ。ここでの「そう」とは、曹無傷が言ったということ。
*何以至此(なにヲもッテここニいたラン)-どうして、こんなことをしようか、いや、しない。
「何以〜」は理由や手段を問う疑問であるが、ここでは'''反語'''の意味。
=== 語句 ===
* 見項王(こうおうニまみエン)
ここでは、項王に敬意を表すため、「まみエン」と訓読する。
* 謝 (しゃシテ)- 謝罪して。沛公が函谷関を封鎖して項羽を怒らせたことなどを謝罪している。
* 臣(しん) - 私。へりくだっていう場合の一人称。
* 然(しかレドモ) - 接続詞。ここでは逆接。
* 不自意(みずからおもハざりキ) - 自分で思わなかったことで
* 今者(いま) - 今。「者」は、ここでは'''時'''(とき)を表すときに添える接尾語。
* 小人(しょうじん) - 取るにたらない者。つまらぬ者。
*令(しム)-使役を表す。
「令将軍与私臣有郤」で、「将軍に私と仲違いさせようとしている」の意味。
=== 語釈 ===
:沛公(はいこう) - 劉邦(りゅうほう)。のちに項羽を倒し、中国を統一し、漢王朝の始祖になる。秦への反乱の際、沛(はい)で旗上げしたので沛公と呼ばれた。三十九歳のときに挙兵。沛は今の江蘇省(こうそしょう)沛(はい)県。
:旦日(たんじつ) - 朝。翌朝。
:項王(こうおう) - 項羽(こうう)。名は籍(せき)。「羽」は字(あざな)。つまり項籍(こうせき)が本名。二十四歳のときに挙兵。
:鴻門(こうもん) - 地名か。
:将軍(しょうぐん) - 項羽のこと。この時点では、項羽はまだ楚王ではない。
* 戮力(ちからヲあわせテ) - 力を合わせて。協力して。
:河北(かほく) - 黄河(こうが)の北方(ほっぽう)の地域。
:籍(せき) - ここでは「関中」の地のこと。今でいう陝西省(せんせいしょう)南部。
:郤(げき) - 仲違い。
:左司馬(さしば) - 役職名。武官の官名である。
== 二 ==
=== 現代語訳 ===
項王はその日、沛公を引きとどめて、(酒宴をひらき)一緒に酒をくみかわした。項王と項伯は(西側の席に座って)東を向いて座り、亜父(あほ)は(北側の席に座り)南を向いて座った。亜父(あほ)とは范増(はんぞう)のことである。沛公は(南側の席に座って)北を向いて座り、張良(ちょうりょう)は西を向いて(沛公のそばに)控えている。
范増はたびたび項王に目配せをして、腰につけていた玉飾りを挙げて、項王に(沛公を殺すべきだと)三度も示した。(しかし)項王は黙ったまま応じなかった。范増は立ち上がり(宴席の)外に出て、項荘を呼び寄せて言うには「わが君(=項羽)は、人柄から、(沛公をだまし討ちで殺すような)むごいことができない。(だから代わりに、おまえが、沛公を殺せ。その手順は、まず、)おまえが(宴席に)入り、(沛公の)前に進んで長寿を祝え。祝いが終わったら、剣で舞うことを願い出て、舞いをして、その機会に沛公を宴席で斬り殺してしまえ。そうしないと、(将来、)(今のところは軍勢が優勢である項羽の身内である)お前の身内も皆、(近い将来、勢力を伸ばした沛公の軍勢に攻めこまれ、お前たち項一族は)今にも捕虜(ほりょ)になってしまうだろう。」と。
項荘はすぐにも宴席に入って長寿を祝った。長寿を祝い終わって(項荘が)言うには、「わが君が沛公と飲んでおられます。軍中なので、楽器(※ 娯楽と訳す場合もある)がありません。どうか剣で舞わせてください。」と。項王は「よろしい。」と。(← 剣舞を許可した)
項荘は剣を抜き、立ち上がって舞った。(=舞い始めた。) (意図に気づいた)項伯もまた(沛公を守ろうとして)剣を抜いて立ち上がって舞い、常に身をもって、(まるで)親鳥が子を翼でかばうように、沛公をかばった。(そのため)項荘は沛公を討つことができなかった。
=== 書き下し文 ===
項王(こうおう)即日(そくじつ)因りて(よりて)沛公(はいこう)を留めて(とどめて)与に(ともに)飲(いん)す。項王・項伯(こうはく)は東嚮(とうきょう)して坐し(ざし)、亜父(あほ)は南嚮(なんきょう)して坐す(ざす)。亜父(あほ)とは范増(はんぞう)なり。沛公は北嚮(ほっきょう)して坐(ざ)し、張良は西嚮(せいきょう)して侍す(じす)。
范増数(しばしば)項王に目(もく)し、佩ぶる(おぶる)所の玉玦(ぎょくけつ)を挙げて、以つてこれに示すこと三たびす。項王黙然として応ぜず。
范増起ち(たち)、出でて(いでて)項荘を召し(めし)、請ひて(いいて)曰はく「君王(くんおう)人(ひと)と為り(なり)忍びず(しのびず)。若(なんぢ)入り(いり)、前みて(すすみて)寿(じゅ)を為せ(なせ)。寿(じゅ)畢はらば(おわらば)剣(けん)を以(もっ)て舞はんことを請(こ)い、因りて(よりて)沛公(はいこう)を坐(ざ)に撃ちて(うちて)之(これ)を殺せ(ころせ)。不者ずんば(しからずんば)、若(なんぢ)が属(ぞく)皆(みな)且に(まさに)虜(とりこ)とする所(ところ)と為らん(ならん)とす。」と。
荘(そう)則ち(すなわち)入りて(いりて)寿(じゅ)を為す(なす)。寿(じゅ)畢はりて(おわりて)曰はく(いわく)「君王(くんおう)沛公(はいこう)と飲す(いんす)。軍中(ぐんちゅう)以て(もって)楽(がく)を為す(なす)無し(なし)。請ふ(こう)剣(けん)を以て(もって)舞はん(まわん)。」と。項王(こうおう)曰はく(いわく)、「諾。」(だく)と。
項荘(こうそう)剣(けん)を抜き(ぬき)起ちて(たちて)舞ふ(まう)。項伯(こうはく)も亦(また)剣(けん)を抜き(ぬき)起ちて(たちて)舞ひ(まい)、常に(つねに)身(み)を以つて(もって)沛公(はいこう)を翼蔽(よくへい)す。荘(そう)撃つ(うつ)を得ず(えず)。
=== 語彙・読解 ===
* 即日(そくじつ) - その日。当日。
* 因りて(よりて) - 「その機会に」。「そのために」。沛公が項羽を訪ねてきた機会なので、というような意味。
* 与飲(ともにのむ、ともにいんす) - 一緒に飲んだ。「与」は「一緒に」という意味。
* 数(しばしば) - 何度も。
*范増数(しばしば)項王に目(もく)し、
范増は項王に目配せをした。ここでの目配せの意図は、沛公を殺す許可を、項羽に求めている。
*若(なんじ) - おまえ。二人称。「若」(ごとし)と同じ字。
*不者(しからずんば) - そうでなければ。ここでは「沛公を殺さなければ」の意味。
*且為所捕虜(まさにとりことするところならん) - 今にも捕虜になってしまうだろう。
「且〜」(まさに)で、「いまにも 〜 になるだろう」の意味。
*請以剣舞(けんをもってまわんことをこい) - 剣舞を舞うことを願う。「請A」で「Aを要望する」。「請」は願望(がんぼう)を表す。
*諾(だく) - 承諾(しょうだく)する、という意味。「よかろう」「よろしい」。
*不得撃(うつことをえず) - 討つことができない。「不得〜」で、機会が無くて「〜できない」の意味。
=== 語釈 ===
:亜父(あほ) - 父に次いで、尊敬される者。「亜」とは「〜に次いで」とかの意味。
:范増(はんぞう) - 項羽の参謀。
:東嚮(とうきょう) - 宴会の席で、西に座って東を向いている。当時の宴会では、西が最上座。つまり東嚮が最上座。
:
:
:張良(ちょうりょう) - 劉邦の参謀。
:項伯(こうはく) - 項羽の叔父(おじ)。
:目 - 目くばせする。
:玉玦(ぎょくけつ) - 輪の形をした、玉飾りの一種。「玦」が「決」に通じ、決断を意味する。
:項荘(こうそう) - 項羽のいとこ。
:属(ぞく) - 一族。身うち。
:前みて(すすみて) - 進んで
:畢わらば(おわらば) - 終わったら。
:翼蔽(よくへい) - 親鳥がひなを翼でかばうように守る。
== 三 ==
=== 現代語訳 ===
そこで張良は軍営の門に来て、樊噲(はんかい)を会った。樊噲は「今日の様子は、どうか」と言った。張良は言った。「非常に切迫している。今、項荘が剣を抜いて舞いをしている。そのねらいは、常に沛公にある。(=沛公を殺そうと狙っている。)」と言った。樊噲は「これは緊急だ。お願いです、私は(宴席の中に)入って沛公と生死をともにしたい。」と言った。樊噲はただちに剣を身につけ盾を抱えて、軍営の門に向かった。(※ 書き下し文は「入る」だが、直後の展開と文脈が通じないので、訳を「向かった」にした。)
(しかし)戟(げき)を交差させている番兵が止めて入れないようにしようとした。樊噲は盾を傾けて、それで番兵をついて地面に倒した。樊噲はとうとう(軍営に)入り、(宴席会場の)幕を開きあげて、西を向いて立ち、目を見開いて項王を見た。(樊噲の)頭髪は逆立ち、まなじりはことごとく裂けていた。(=目を見開いている)
項王は、刀のつかに手をかけ膝(ひざ)をついて身構えて言うには、「おまえは何者か」と。
張良が答えるには、「沛公の車で護衛の添え乗りをしている、樊噲(はんかい)という者です。」と。
項王が言うには、「勇敢な男だ。これに大杯(たいはい)の酒を与えよ。」と。そこで一斗(「いっと」、当時は約二リットル)の酒を与えた。
樊噲は、礼を言って立ち上がり、立ったままでこれ(=酒)を飲んだ。項王が言うには「彼に豚の肩の肉を振る舞え。」と。そこで、ひと塊(かたまり)の生の豚の肩の肉を与えた。樊噲は、その(持ってきた)盾を地にふせて、豚の肩の肉をその上に置いて、剣を抜いて(豚肉を)切って、これ(=豚肉)を食べた。
=== 書き下し文 ===
是(ここ)に於いて(おいて)張良(ちょうりょう)軍門(ぐんもん)に至り(いたり)て、樊噲(はんかい)を見る。樊噲曰はく、「今日(こんにち)の事(こと)何如(いかん)。」と。良(りょう)曰はく、「甚だ(はなはだ)急(きゅう)なり。今者(いま)、項荘(こうそう)剣(けん)を抜きて(ぬきて)舞ふ(まう)。其の(その)意(い)常に(つねに)沛公に在るなり。」と。噲(かい)曰はく(いわく)、「此れ(これ)迫れり(せまれり)。臣(しん)請ふ(こう)、入りて(いりて)之(これ)と命(めい)を同じく(おなじく)せん。」と。噲(かい)即ち(すなわち)剣(けん)を帯び(おび)盾(たて)を擁して(ようして)軍門(ぐんもん)に入る(いる)。交戟(こうげき)の衛士(えいし)止めて(とどめて)入れざらん(いれざらん)と欲す(ほっす)。
樊噲(はんかい)其の(その)盾(たて)を側だてて(そばだてて)、以て(もって)衛士(えいし)を撞きて(つきて)地にたおす。噲(かい)遂に(ついに)入り(いり)、帷(い)を披きて(ひらきて)西嚮(せいきょう)して立ち、目を瞋らして(いからせて)項王(こうおう)を視る(みる)。頭髪(とうはつ)上指(じょうし)し、目眥(もくし)尽く(ことごとく)裂く(さく)項王(こうおう)剣(けん)を按じて(あんじて)、跽(ひざまずき)して曰はく、「客(かく)何為る(なんする)者(もの)ぞ。」と。
張良(ちょうりょう)曰はく(いわく)、「沛公(はいこう)の参乗(さんじょう)樊噲(はんかい)という者(もの)なり。」と。
項王曰はく、「壮士(そうし)なり。之(これ)に卮酒(ししゅ)を賜へ(たまえ)。」と。則ち(すなわち)斗卮酒(とししゅ)を与ふ。噲(かい)、拝謝(はいしゃ)して起ち(たち)、立ちながら(たちながら)にして之(これ)を飲む(のむ)。項王曰はく、「之に(これに)彘肩(ていけん)賜へ(たまえ)。」と。則ち(すなわち)一(いつ)の生彘肩(せいていけん)を与ふ(あたう)。樊噲(はんかい)其の(その)盾(たて)を地(ち)に覆せ(ふせ)、彘肩(ていけん)を上(うえ)に加へ(くわえ)、剣(けん)を抜き(ぬき)、切りて(きりて)之(これ)を啗らふ(くらふ)。
=== 語彙・読解 ===
* 於是(ここにおいて) - 「そこで」「こうして」「それで」。接続詞的な意味の熟語。
* 何如(いかん) - いかがですか。疑問を表す。
* 甚(はなはだ)急(きゅう) - 「甚」とは「非常に」「とても」の意味。「甚大」(じんだい)の「甚」の字と同じ。「急」は、「緊急」の急の字と同じ。急は、文脈から、切迫(せっぱく)、急迫(きゅうはく)の意味。
*此迫矣(これせまれり) - 「矣」は'''断定'''を表す助字であり、訓読しない。
=== 語釈 ===
:目眥(もくし) - 目尻。まなじり。
:参乗(さんじょう) - 護衛のため馬車に同乗する兵士。護衛のための添え乗り。
:斗(と) - 当時の一斗は約二リットル。
:彘肩(ていけん) - 豚の肩の肉。
== 四 ==
=== 現代語訳 ===
項王は言う、「勇士である。まだ酒を飲めるか。」と。樊噲が言うには、「私は死ですら避けようとしません。(ましてや)どうして酒を、どうして断る必要があるのでしょうか。いや、断りますまい。」と。
(樊噲が言うには、)「そもそも秦王は、虎や狼のような(残忍な)心を持っていました。人を殺すことは、数えきれないほどで(=多くて)、人を処刑することは、しきれないことを恐れるほどでした。(秦の王は、そういう事をしていたので、)天下の人々は皆(みな)、秦に背き(そむき)ました。(楚の)懐王が将軍たちと約束して言うには、『先に秦を撃破して咸陽(かんよう)に入場した者は、その地(=関中)の王としよう。』と。今、沛公は先に秦を破って咸陽(かんよう)に入場しましたが、ほんの少しの物(=宝物など?)も、けっして近づけようとしません。(= 自分のものにしませんでした。)宮殿を封鎖し、引き返して、覇水のほとりに駐屯し、大王(=項羽)の来られるのをお待ちしていたのです。わざわざ将兵を派遣して函谷関(かんこくかん)を守らせたのは、他の盗賊の出入りと、非常事態に備えたからです。(沛公は)苦労して功績の高いことは以上の通りですが、いまだに諸侯に封ずる(= 沛公に領地を与えて、沛公を諸侯のうちの一人として扱う・・・というような意味)という恩賞がありません。それどころか、つまらない人のたわごとを聞いて、功績ある人(= 沛公)を罪を責めて殺そうとしています。これでは、滅んだ秦の、二の舞いになるだけです。失礼ながら(私は言いますが)、大王のためには得策ではありません。」と。
項王は、いまだに答えることが、できなかった。
項王が言うには、「まあ、座れ。」と。
樊噲は張良のそばに座った。座ってから、しばらくして、沛公は立ち上がり便所に行き、そのついでに樊噲を招いて(一緒に)出た。
=== 書き下し文 ===
項王曰く、「壮士(そうし)なり。能く(よく)復た(また)飲むか。」と。樊噲(はんかい)曰く、「臣(しん)死すら且つ(かつ)避けず。卮酒(ししゅ)安んぞ(いずくんぞ)辞する(じする)に足らんや。夫れ(それ)秦王虎狼(ころう)の心有り。人を殺すこと挙ぐる(あぐる)能は(あたは)ざるが如く(ごとく)、人を刑すること勝へ(たへ)ざるを恐るるが如し(ごとし)。天下皆之(これ)に叛く(そむく)。懐王(かいおう)諸将(しょしょう)と約して曰く、『先ず(まず)秦(しん)を破りて咸陽(かんよう)に入る者は、これに王たらしめん。と』今、沛公(はいこう)先ず秦を破りて咸陽(かんよう)に入り。豪毛(ごうもう)も敢へて(あへて)近づくる所有らずして、宮室(きゅうしつ)を封閉(ほうへい)し、還りて(かえりて)覇上(はじょう)に軍して、以て(もって)大王の来たるを待てり。故ら(ことさら)に将を遣はし関(かん)を守らしめし者は、他の盗の出入と非常とに備へしなり。労(ろう)苦だしく(はなはだしく)して功(こう)高きこと此く(かく)のごときに、未だ(いま)だ封侯(ほうこう)の賞有らず。而(しか)るに細説(さいせつ)を聴きて、有功(ゆうこう)の人を誅せんと(ちゅうせんと)欲す(ほっす)。此れ(これ)亡秦の続きなるのみ。窃か(ひそか)に大王の為に取らざるなり。」と。
項王未だ(いまだ)以て応(こた)ふること有らず。曰はく、「坐せよ。」と。樊噲(はんかい)良に従ひて坐す。坐すること須(しゆ)臾(ゆ)にして、沛公起ちて廁(かわや)に如き(ゆき)因り(より)て樊噲を招きて出ず(いず)。
=== 語彙・読解 ===
* 能復飲乎(よくまたのむか) - 飲めるか。「能A」は「Aが可能」の意味。「乎」(か)は疑問の意味。
*死且不避。巵酒安足辞。 - 死ですら避けようとしない。どうして大杯の酒を辞退するか。いや、大杯の酒を辞退しない。
「A 且 B 。 安 C 。」で、「AですらBである。どうしてCであろうか。いやCではない。」の意味。'''抑揚'''(よくよう)の意味。
*不敢有所近(あえてちかづくるところあらず) -
「不敢〜」で「すすんで〜しようとはしない」の意味。
*故(ことさらニ) - 「故意に」「わざと」の意味。ここでは文脈から「わざわざ」と解釈する。
*誅(ちゅう) - 罪を責めて殺す。
*耳(のみ) - 強い断定や限定。「亡秦之続耳」(ぼうしんのぞくのみ)は「滅んだ秦の二の舞いである」のような意味。
=== 語釈 ===
:豪毛(ごうもう) - ほんのわずか。豪は獣の細い毛。
:窃か(ひそか) - はばかりながら。へりくだって言う言葉。
:須臾(しゅゆ) - しばらくして。
: -
== 五 ==
=== 現代語訳 ===
沛公はすでに(宴席から)脱出した。項王は、都尉(とい)の陳平(ちんぺい)に沛公を呼びに行かせた。沛公が言うには、「いま出てきたときに、まだ別れのあいさつをしていない。これは、そうするべきだろうか。」と。
樊噲が言うには、「大きな事業を行うには、小さな慎み(つつしみ)にはこだわらず、大きな礼節のためには小さな礼節を無視する必要も有ります。いま、相手はちょうど、包丁(ほうちょう)とまな板であり、私達は(料理されかねない)魚肉です。なんで、あいさつなどに、こだわっている場合でしょうか。(あいさつの必要はありません。速く逃げないと危険です。)」
そこで、とうとう沛公は去った。それで張良を留まらせて(項王に)謝罪させた。張良が沛公に質問して言ったのは、「大王(=沛公)が来たとき、(土産として)何を持ってきましたか。」と。(沛公が)言うには、「私は白璧の一対を持ってきて、項王に献上しようと思い、玉斗の一対を亜父どのに与えようと思っていたが、その(=項王らの)怒りを買っていたので、進んで献上しようとはしなかった。あなたが私のために、これを献上してくれ。」と言った。張良が言うには「謹んで承知しました。」と。
=== 書き下し文 ===
沛公(はいこう)已に(すでに)出づ(いづ)。項王(こうおう)都尉(とい)陳平(ちんぺい)をして沛公を召さしむ。沛公曰はく(いわく)、「今者(いま)、出づる(いづる)に未だ(いまだ)辞(じ)せざるなり。之を為すこと奈何(いかん)。」と。樊噲(はんかい)曰はく、「大行(たいこう)は細謹(さいきん)を顧みず(かえりみず)、大礼(たいれい)は細譲(しょうじょう)を辞せず。如今(いま(じょこん))、人(ひと)は方に(まさに)刀俎(とうそ)たり、我(われ)は魚肉(ぎょにく)たり。何ぞ(なんぞ)辞(じ)するを為さん(なさん)。」と。
是(ここ)に於いて(おいて)遂に(ついに)去る(さる)。乃ち(すなわち)張良(ちょうりょう)をして留まり(とどまり)謝(しゃ)せしむ。良(りょう)問ひて(といて)曰はく、「大王(だいおう)来たる(きたる)とき、何(なに)をか操れる(とれる)。」と。
曰はく、「我(われ)白璧(はくへき)一双(いっそう)を持(ぢ)し、項王(こうおう)に献(けん)ぜんと欲し(ほっし)、玉斗(ぎょくと)一双(いっそう)をば、亜父(あほ)に与へん(あたえん)と欲し(ほっし)も、其の(その)怒り(いかり)に会ひて(あいて)、敢へて(あえて)献(けん)ぜず。公(こう)我が(わが)為に(ために)之(これ)を献ぜよ(けんぜよ)。」と。
張良(ちょうりょう)曰はく(いわく)、「謹みて(つつしみて)諾(だく)す。」と。
=== 語彙・読解 ===
:已出(すでにいず) - すでに出た。
:使 - 使役。
:奈何(いかん) - どうしようか。疑問を表す。手段・方法を問う。「如何」「若何」と同じ意味・用法。
:如今(いま) - ちょうどうど今。
:方(まさに) - ちょうど今。まさに。
:何辞為(なんぞじすることなさん) - どうして別れのあいさつをすることがあろうか、いや、することはない。(反語)
:
:不敢献 - 「不敢A」で「すすんでAしようとしない」。
=== 語釈 ===
:都尉(とい) – 軍事をつかさどる官名。
:辞(じ) - 別れのあいさつ。
:刀俎(とうそ) - 包丁とまな板
:操 - 土産として持ってくる。
:白璧(はくへき) - 白い、環状の宝石。
:玉斗(ぎょくと) - 玉で作ったひしゃく。
== 六 ==
=== 現代語訳 ===
このとき、項王の軍は鴻門に駐屯しており、沛公の軍は覇水のあたりに駐屯していた。おたがいの(駐屯地の)距離は四十里(約十六キロメートル)であった。沛公は、よって、(持ってきた)車と(連れてきた)兵を(鴻門に)残し、身一人で脱出して騎馬に乗り、樊噲・夏侯嬰(かこうえい)・靳彊(きんきょう)・紀信(きしん)たちの四人と、剣と盾を持って徒歩で走り、驪山(りざん)のもとから、芷陽(しよう)への道を、抜け道を通って行った。
(沛公と張良の別れ際に、)沛公が張良に言っていたことは、「この道で自軍に到着するまでが、たったの二十里に過ぎない。私が自軍に到着した頃合いを見計らって、そなたはそこで宴席に入れ。」と。
=== 書き下し文 ===
是の(この)時(とき)に当たり(あたり)、項王の軍(ぐん)は鴻門(こうもん)の下に在り(あり)、沛公(はいこう)の軍(ぐん)は覇上(はじょう)に在り(あり)相去る(あいさる)こと四十里(しじゅうり)なり。沛公則ち(すなわち)車騎(しゃき)を置き(おき)、身を脱(だっ)して独り(ひとり)騎(き)し、樊噲・夏侯嬰(かこうえい)・靳彊(きんきょう)・紀信(きしん)ら四人(よにん)の剣盾(けんじゅん)を持(ぢ)して歩走(ほそう)するものと、驪山(りざん)の下(もと)より、芷陽(しよう)に道(みち)して、間行(かんこう)す。
=== 語彙・読解 ===
=== 語釈 ===
:四十里(しじゅうり) - 当時の一里は約四百メートル。
:間行(かんこう) - 抜け道を行く。
:度(はかリ)- 見積もる(みつもる)。推し量る(おしはかる)。
== 七 ==
=== 現代語訳 ===
沛公はすでに(鴻門を)去り、しばらくして(自軍の)軍中に到着した。張良は(宴席に)入って陳謝して言うには、
:「沛公は、これ以上は酒が飲めず(深く酔っていて)、別れのあいさつもできません。(そこで沛公は)謹んで臣下である私・張良に白璧の一対を預け、(沛公が私に命令して言うには、)再拝して大王(=項王)の足元に献上し、玉斗の一対を、再拝して大将軍(=范増)の足元に差し上げよ、とのことです。」
項王が言うには、「沛公はどこにいるのか。」と。
張良が(答えて)言うには、「大王が沛公の過失(かしつ)をとがめると聞き、単身(たんしん)で脱出しました。すでに自軍に到着しているでしょう。」と。
項王はそこで白璧を受け取り、これを座席のそばに置いた。亜父は玉斗を受け取ると、これを地面に置き、剣を抜いて、突いて破壊して、言うには、「ああ、小僧め、ともに謀略をするに値(あたい)しない。項王の天下を奪う(うばう)者は、必ず沛公だ。われらの一族は、今に沛公の捕虜になるだろう。」と。
沛公は自軍に到着し、曹無傷の罪を責めて、ただちに処刑した。
=== 書き下し文 ===
沛公(はいこう)已に(すでに)去り(さり)、間(しの)びて軍中(ぐんちゅう)に至る(いたる)。
張良(ちょうりょう)入り(いり)、謝して(しゃして)曰はく(いわく)、「沛公桮杓(はいしゃく)に勝へず(たえず)、辞(じ)するに能はず(あたわず)。謹みて臣良(しんりょう)をして白璧(はくへき)一双(いっそう)をば、再拝(さいはい)して大将軍(だいしょうぐん)の足下(そくか)に奉ぜしむ(ほうぜしむ)。」と。
項王曰はく、「沛公安くにか(いずくにか)在る(ある)。」と。
良(りょう)曰はく、「大王(だいおう)之(これ)を督過(とくか)するに意(い)有り(あり)と聞き(きき)、身(み)を脱(だっ)して独り(ひとり)去れり(されり)。已に(すでに)軍(ぐん)に至らん(いたらん)。」と。
項王則ち(すなわち)璧(へき)を受け(うけ)、之(これ)を坐上(ざじょう)に置く(おく)。
亜父(あほ)は玉斗(ぎょくと)を受け(うけ)、之(これ)を地(ち)に置き(おき)、剣を抜き撞きて(つきて)之(これ)を破りて(やぶりて)曰はく、「唉(ああ)、豎子(じゅし)与に謀る(はかる)に足らず(たらず)。項王の天下(てんか)を奪ふ(うばう)者(もの)は、必ず(かならず)沛公ならん。吾が(わが)属(ぞく)今に(いまに)之(これ)が虜(とりこ)と為らん。」と。
沛公(はいこう)軍(ぐん)に至り(いたり)立ちどころ(たちどころ)に曹無傷(そうむしょう)を誅殺(ちゅうさつ)す。
=== 語彙・読解 ===
:安在(いづくニカあル) - どこにいるのか。疑問。なお、「安」を「いづくンゾ」と訓読すれば理由を問う表現になる。
=== 語釈 ===
:督過(とくか) – 過失をとがめる。
:再拝(さいはい) - 再度のお辞儀。丁寧なお辞儀。深い敬意を表すしぐさ。
:足下(そっか) - 足元に差し出すことで、敬意を表している、と思われる。
:豎子(じゅし) - 小僧(こぞう)。青二才(あおにさい)。
:立(たちどころに) - すぐに。ただちに。たちどころに。すぐさま。
== 項羽の性格など ==
*『鴻門之会』での項羽の性格
::・項羽は、沛公(はいこう)を殺す決断ができず、決断力の無い人物として、描かれている。
::・感情的で短気である一方で、人情味があり義理堅い人物として書かれている。
検定教科書などに紹介される項羽の逸話では、項羽は感情的で短気である一方で、人情味があり義理堅い人物として書かれている。
たとえば『鴻門之会』では、函谷関などを封鎖した沛公に怒り、関所を攻撃するものの、自分に謝罪しにきた沛公(はいこう)を許し、その沛公を助けにきた樊噲(はんかい)を高く評価したかのように記述されており、項羽は人情味がある人物として書かれている。
『鴻門之会』で書かれた范増(はんぞう)による評価でも、項羽を、そのような、謝罪に来た沛公の殺害をためらうような、義理堅い人物として、范増は項羽を評価しているので、范増は項荘(こうそう)に沛公の殺害を命じたのであった。
*実際の性格
だが、『史記』の教科書では紹介されていない部分での項羽の実際の行動や、歴史上の実際での行動では、この『鴻門之会』で描かれたような人物像とは、やや異なる。
『鴻門之会』のあと、項羽は、反秦の盟主である懐王(かいおう)を殺したりしており、あまり義理堅いとは思えない人物だし、人情味も無いと思われる。そもそも、この懐王の殺害によって、のちに沛公(劉邦)が項羽が滅ぼす大義名分の原因の一つになったのである。
『鴻門之会』の記述だけを信用するにしろ、それ以外の『史記』の記述も信用するにしろ、どちらにせよ、項羽の行動の方針は一貫しておらず、項羽は感情的である。
*人物像の対比
項羽以外の他の人物の性格は、『鴻門之会』では、項羽とは対比的に描かれている。
たとえば范増(はんぞう)や項荘は、沛公(はいこう)の殺害をすすめるなど、目的のためには冷酷な選択でも、ためらわない。
たとえば沛公は、部下の張良(ちょうりょう)の進言をよく受け入れる人物として、描かれている。この点が、范増の進言を受け入れなかった項羽とは異なる。
また、沛公の野心を項羽に伝えた曹無傷を、沛公は処刑するように、沛公は人を殺す人物として描かれている。この点、沛公の殺害をためらった項羽とは異なる。しかも、沛公の野心を曹無傷から聞いたという話を、項羽は、うっかりと、沛公に喋ってしまうのである。
[[Category:高等学校教育_国語_漢文_歴史書_史記|こうもんのかい]]
agg165bk9ej4vaclp5lw9rdmxe11evu
機械語
0
26647
263411
263328
2024-11-13T03:44:24Z
Ef3
694
コンパイラのオプションに誤り
263411
wikitext
text/x-wiki
{{Wikipedia}}
== 概要 ==
機械語は、コンピュータが直接実行できるプログラムの形式であり、通常はプロセッサが理解できる命令セットに基づいて構成されています。コンピュータのプロセッサは、機械語プログラムの命令を一つずつ読み込み、解釈して実行します。機械語は、高水準のプログラム言語(例えばC言語など)と比較すると、非常に低レベルの言語であり、直接ハードウェアに対するアクセスが可能です。
機械語は、コンピュータのプロセッサが理解できる唯一のプログラム形式であるため、コンピュータの動作を理解する上で非常に重要な概念です。また、機械語を直接書くことで、コンピュータの性能を最大限に引き出すことができます。
機械語は、一般的にアセンブリ言語という人間が理解しやすい形式に変換されます。アセンブリ言語は、機械語と1対1に対応する命令を持つため、プログラマにとっては理解しやすいものになっています。
機械語自体は、通常、メモリ上のバイト列として格納されます。このバイト列は、命令セットに従ってエンコードされており、しばしば2進法のデータとして表現されますが、必ずしも「2進数」として意識する必要はありません。重要なのは、プロセッサがこのバイト列を解釈して実行できる形式であるという点です。
== ソースコードからどんな機械語が生成されるか ==
;フィボナッチ数を返す関数(C言語):<syntaxhighlight lang=c line copy>
int fibo(int n) {
if (n == 0 || n == 1)
return n;
return fibo(n-1) + fibo(n-2);
}
</syntaxhighlight>
=== 32bitARMプロセッサーの例 ===
;コンパイラーによって生成されたコード:<syntaxhighlight lang=c-objdump line>
$ clang-19 --target=arm -mfloat-abi=soft -c -Oz -g fibo.c
$ llvm-objdump-19 --triple=arm -S fibo.o
fibo.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <fibo>:
; int fibo(int n) {
0: e92d4830 push {r4, r5, r11, lr}
4: e28db008 add r11, sp, #8
8: e1a04000 mov r4, r0
c: e3a05000 mov r5, #0
; if (n == 0 || n == 1)
10: e3540002 cmp r4, #2
; }
14: 30840005 addlo r0, r4, r5
18: 38bd8830 poplo {r4, r5, r11, pc}
; return fibo(n-1) + fibo(n-2);
1c: e2440001 sub r0, r4, #1
20: ebfffffe bl 0x20 <fibo+0x20> @ imm = #-0x8
24: e0805005 add r5, r0, r5
28: e2444002 sub r4, r4, #2
2c: eafffff7 b 0x10 <fibo+0x10> @ imm = #-0x24
</syntaxhighlight>
このコードは[[W:ARMアーキテクチャ#32ビットARM|32bitARMプロセッサ]]をターゲットとしたもので、すべての命令が32ビット長なのでアセンブラーの初学者向きです。
また、ARMアーキテクチャは多くのスマートフォンやタブレットで採用されていたり、組込み用途での採用も多いので最も普及しているコンピュータ・アーキテクチャの1つです。
==== 各命令の説明 ====
出力されたアセンブリの各行を詳細に見ていきます。
:<syntaxhighlight lang=c-objdump line start=10>
0: e92d4830 push {r4, r5, r11, lr}
</syntaxhighlight>
:* '''命令''': <code>push {r4, r5, r11, lr}</code>
:* '''解説''': 関数のエントリポイントです。レジスタ<code>r4</code>, <code>r5</code>, <code>r11</code>, <code>lr</code>(リンクレジスタ)をスタックに保存して、<code>lr</code>は関数の復帰先アドレスを保持します。この命令によりスタックフレームが作成され、レジスタの内容が保存されます。
:<syntaxhighlight lang=c-objdump line start=11>
4: e28db008 add r11, sp, #8
</syntaxhighlight>
:* '''命令''': <code>add r11, sp, #8</code>
:* '''解説''': フレームポインタ<code>r11</code>を現在のスタックポインタにオフセットを追加した値に設定し、スタックフレームの開始位置を決めます。
:<syntaxhighlight lang=c-objdump line start=12>
8: e1a04000 mov r4, r0
</syntaxhighlight>
:* '''命令''': <code>mov r4, r0</code>
:* '''解説''': 引数<code>n</code>(<code>r0</code>に格納されている)をレジスタ<code>r4</code>に移動します。この<code>r4</code>が以降で引数<code>n</code>として使われます。
:<syntaxhighlight lang=c-objdump line start=13>
c: e3a05000 mov r5, #0
</syntaxhighlight>
:* '''命令''': <code>mov r5, #0</code>
:* '''解説''': レジスタ<code>r5</code>に<code>0</code>を設定します。<code>r5</code>はこの後の計算結果の累積値を保持します。
:<syntaxhighlight lang=c-objdump line start=15>
10: e3540002 cmp r4, #2
</syntaxhighlight>
:* '''命令''': <code>cmp r4, #2</code>
:* '''解説''': <code>n < 2</code>を判定するため、<code>r4</code>と<code>2</code>を比較しています。
:<syntaxhighlight lang=c-objdump line start=17>
14: 30840005 addlo r0, r4, r5
18: 38bd8830 poplo {r4, r5, r11, pc}
</syntaxhighlight>
:* '''命令''': <code>addlo r0, r4, r5</code>
:** '''解説''': <code>n</code>が<code>0</code>か<code>1</code>のとき、つまり<code>n < 2</code>の場合、<code>r0</code>に<code>r4</code>と<code>r5</code>の和を返します<ref>ARMアーキテクチャでは、多くの命令でキャリーなどのコンディションコードによって実行する・しないを制御できるのが大きな特徴で、他のアーキテクチャではジャンプ命令以外でコンディションコードによって実行する・しないを制御できるのは稀です(他にはIA-64がプレディケート可能です)。</ref>。
:* '''命令''': <code>poplo {r4, r5, r11, pc}</code>
:** '''解説''': 条件が成立(<code>n < 2</code>)した場合、関数から復帰します。スタックからレジスタ<code>r4</code>, <code>r5</code>, <code>r11</code>, <code>pc</code>(プログラムカウンタ)を復元し、<code>pc</code>に復帰アドレスが入ることで呼び出し元に戻ります。
:<syntaxhighlight lang=c-objdump line start=20>
1c: e2440001 sub r0, r4, #1
20: ebfffffe bl 0x20 <fibo+0x20>
</syntaxhighlight>
:* '''命令''': <code>sub r0, r4, #1</code>
:** '''解説''': <code>n-1</code>を計算し、再帰呼び出しのために<code>r0</code>にセットします。
:* '''命令''': <code>bl 0x20 <fibo+0x20></code>
:** '''解説''': <code>fibo(n-1)</code>を再帰的に呼び出します。このとき、リンクレジスタ<code>lr</code>に次の命令アドレスが保存されます。
:<syntaxhighlight lang=c-objdump line start=22>
24: e0805005 add r5, r0, r5
</syntaxhighlight>
:* '''命令''': <code>add r5, r0, r5</code>
:* '''解説''': <code>fibo(n-1)</code>の戻り値が<code>r0</code>に格納されているため、それを累積値<code>r5</code>に加算します。
:<syntaxhighlight lang=c-objdump line start=23>
28: e2444002 sub r4, r4, #2
</syntaxhighlight>
:* '''命令''': <code>sub r4, r4, #2</code>
:* '''解説''': <code>n-2</code>を計算し、次の再帰呼び出しのために<code>r4</code>にセットします。
:<syntaxhighlight lang=c-objdump line start=24>
2c: eafffff7 b 0x10 <fibo+0x10>
</syntaxhighlight>
:* '''命令''': <code>b 0x10 <fibo+0x10></code>
:* '''解説''': ラベル<code>0x10</code>(再帰処理の比較部分)に無条件分岐します。
==== Thumb命令の例 ====
ARMプロセッサはThumbと呼ばれるコード効率の向上を意図した16ビット長の[[W:ARMアーキテクチャ#Thumb|Thumb命令モード]]を持っています。
;コンパイラーによって生成されたコード:<syntaxhighlight lang=c-objdump line>
$ clang-19 --target=thumb -mfloat-abi=soft -mthumb -c -Oz -g fibo.c
$ llvm-objdump-19 --triple=thumb -S fibo.o
fibo.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <fibo>:
; int fibo(int n) {
0: b5b0 push {r4, r5, r7, lr}
2: af02 add r7, sp, #0x8
4: 0004 movs r4, r0
6: 2500 movs r5, #0x0
; if (n == 0 || n == 1)
8: 2c02 cmp r4, #0x2
a: d305 blo 0x18 <fibo+0x18> @ imm = #0xa
; return fibo(n-1) + fibo(n-2);
c: 1e60 subs r0, r4, #0x1
e: f7ff fffe bl 0xe <fibo+0xe> @ imm = #-0x4
12: 1945 adds r5, r0, r5
14: 1ea4 subs r4, r4, #0x2
16: e7f7 b 0x8 <fibo+0x8> @ imm = #-0x12
; }
18: 1960 adds r0, r4, r5
1a: bdb0 pop {r4, r5, r7, pc}
</syntaxhighlight>
==== 各命令の説明 ====
出力されたアセンブリの各行を詳細に見ていきます。
:<syntaxhighlight lang=c-objdump line start=8>
00000000 <fibo>:
; int fibo(int n) {
0: b5b0 push {r4, r5, r7, lr}
</syntaxhighlight>
:* '''命令 <code>push {r4, r5, r7, lr}</code>''': レジスタ <code>r4</code>、<code>r5</code>、<code>r7</code>、<code>lr</code> (リンクレジスタ) をスタックに保存し、再帰的な呼び出しでもレジスタの値を保持します。
:<syntaxhighlight lang=c-objdump line start=11>
2: af02 add r7, sp, #0x8
</syntaxhighlight>
:* '''命令 <code>add r7, sp, #0x8</code>''': フレームポインタレジスタ <code>r7</code> をスタックポインタから8バイト分ずらして設定します。ローカル変数や引数へのアクセスを簡単にするために使用されます。
:<syntaxhighlight lang=c-objdump line start=12>
4: 0004 movs r4, r0
6: 2500 movs r5, #0x0
</syntaxhighlight>
:* '''命令 <code>movs r4, r0</code>''': 引数 <code>n</code> をレジスタ <code>r4</code> に保存します。
:* '''命令 <code>movs r5, #0x0</code>''': レジスタ <code>r5</code> に0を設定します。これはフィボナッチ計算の一部で、計算結果を保存していくためのレジスタです。
:<syntaxhighlight lang=c-objdump line start=14>
; if (n == 0 || n == 1)
8: 2c02 cmp r4, #0x2
a: d305 blo 0x18 <fibo+0x18>
</syntaxhighlight>
:* '''命令 <code>cmp r4, #0x2</code>''': <code>n</code> の値 (<code>r4</code>) を2と比較します。
:* '''命令 <code>blo 0x18 <fibo+0x18></code>''': <code>n</code> が2未満(すなわち0か1)なら、条件分岐して0x18番地にジャンプします。ここで関数の終了処理に進みます。
:<syntaxhighlight lang=c-objdump line start=17>
; return fibo(n-1) + fibo(n-2);
c: 1e60 subs r0, r4, #0x1
e: f7ff fffe bl 0xe <fibo+0xe>
12: 1945 adds r5, r0, r5
14: 1ea4 subs r4, r4, #0x2
16: e7f7 b 0x8 <fibo+0x8>
</syntaxhighlight>
:* '''命令 <code>subs r0, r4, #0x1</code>''': <code>r4</code> から1を引き、<code>fibo(n-1)</code> を計算するための引数を設定します。
:* '''命令 <code>bl 0xe <fibo+0xe></code>''': <code>fibo</code> 関数を再帰的に呼び出します。この再帰呼び出しは <code>fibo(n-1)</code> を求めます。
:* '''命令 <code>adds r5, r0, r5</code>''': 呼び出しの結果が <code>r0</code> に格納され、これを <code>r5</code> に加えます。
:* '''命令 <code>subs r4, r4, #0x2</code>''': <code>n</code> の値から2を引き、<code>fibo(n-2)</code> を求める準備をします。
:* '''命令 <code>b 0x8 <fibo+0x8></code>''': 再度 <code>fibo</code> 関数に戻ってループを繰り返し、 <code>fibo(n-1) + fibo(n-2)</code> を計算します。
:<syntaxhighlight lang=c-objdump line start=24>
18: 1960 adds r0, r4, r5
1a: bdb0 pop {r4, r5, r7, pc}
</syntaxhighlight>
:* '''命令 <code>adds r0, r4, r5</code>''': 最終的な結果を <code>r0</code> に格納し、戻り値として設定します。
:* '''命令 <code>pop {r4, r5, r7, pc}</code>''': スタックからレジスタの内容を復元し、関数の実行を終了します。
Thumb命令は概ね命令長は16ビットで、長いオペランドが必要な命令(この場合は bl)だけが追加のオペランドを持ちます。
=== 64bitARMプロセッサーの例 ===
ARMアーキテクチャーは、ARMv8-Aから64ビットモードアーキテクチャーAArch64を採用してます。
AArch64は、32本の64ビットレジスター(うち1本はスタックポインター兼ゼロレジスタ、1本は戻り番地を保持するリンクレジスタ)を持ち、Xnnレジスターは64ビットレジスターのnn本目、WnnはXnnレジスターの下位32ビットです。
;コンパイラーによって生成されたコード:<syntaxhighlight lang=c-objdump line>
$ clang-19 --target=aarch64 -c -Oz -g fibo.c
$ llvm-objdump-19 --triple=aarch64 -S fibo.o
fibo.o: file format elf64-littleaarch64
Disassembly of section .text:
0000000000000000 <fibo>:
; int fibo(int n) {
0: a9be7bfd stp x29, x30, [sp, #-0x20]!
4: a9014ff4 stp x20, x19, [sp, #0x10]
8: 910003fd mov x29, sp
c: 2a1f03f3 mov w19, wzr
; if (n == 0 || n == 1)
10: 71000814 subs w20, w0, #0x2
14: 540000e3 b.lo 0x30 <fibo+0x30>
; return fibo(n-1) + fibo(n-2);
18: 51000400 sub w0, w0, #0x1
1c: 94000000 bl 0x1c <fibo+0x1c>
20: 2a0003e8 mov w8, w0
24: 2a1403e0 mov w0, w20
28: 0b130113 add w19, w8, w19
2c: 17fffff9 b 0x10 <fibo+0x10>
; }
30: 0b130000 add w0, w0, w19
34: a9414ff4 ldp x20, x19, [sp, #0x10]
38: a8c27bfd ldp x29, x30, [sp], #0x20
3c: d65f03c0 ret
</syntaxhighlight>
このコードは、AArch64アーキテクチャ用にコンパイルされた再帰的なフィボナッチ関数 <code>fibo</code> のアセンブリリストです。以下で各部分を解説します。
:<syntaxhighlight lang=c-objdump line start=10>
0: a9be7bfd stp x29, x30, [sp, #-0x20]!
4: a9014ff4 stp x20, x19, [sp, #0x10]
8: 910003fd mov x29, sp
c: 2a1f03f3 mov w19, wzr
</syntaxhighlight>
:* '''スタックフレームの設定''':<code>stp</code> 命令でリンクレジスタ (<code>x30</code>) とフレームポインタ (<code>x29</code>) をスタックに保存し、<code>sp</code>(スタックポインタ)を更新しています。また、<code>x20</code> と <code>x19</code> の値もスタックに保存しています。これにより、関数が呼び出されるたびにスタック上に新しいフレームが作成され、レジスタの状態が保持されます。
:* '''初期化''':<code>mov w19, wzr</code> によって、<code>w19</code> にゼロ (<code>wzr</code>はゼロレジスタ) を設定しています。これは <code>n = 0</code> または <code>n = 1</code> の場合の初期戻り値として使用されます。
:<syntaxhighlight lang=c-objdump line start=15>
10: 71000814 subs w20, w0, #0x2
14: 540000e3 b.lo 0x30 <fibo+0x30>
</syntaxhighlight>
:* '''条件チェック''':引数 <code>n</code>(<code>w0</code>に格納)を使って <code>n < 2</code> かどうかをチェックしています。<code>subs w20, w0, #0x2</code> によって、<code>n - 2</code> の結果が <code>w20</code> に格納され、<code>b.lo</code> 命令で <code>n < 2</code> の場合に <code>0x30</code> のラベルにジャンプします。これにより <code>n</code> が 0 または 1 の場合は直接 <code>n</code> を返す処理に移行します。
:<syntaxhighlight lang=c-objdump line start=18>
18: 51000400 sub w0, w0, #0x1
1c: 94000000 bl 0x1c <fibo+0x1c>
20: 2a0003e8 mov w8, w0
24: 2a1403e0 mov w0, w20
28: 0b130113 add w19, w8, w19
2c: 17fffff9 b 0x10 <fibo+0x10>
</syntaxhighlight>
:* '''再帰呼び出し''':<code>w0</code> を <code>n-1</code> として設定して <code>fibo(n-1)</code> を呼び出します。この結果が <code>w0</code> に返され、<code>mov w8, w0</code> で一時保存します。その後 <code>w0</code> に <code>n-2</code> を設定し、再度 <code>fibo(n-2)</code> を呼び出し、その結果を <code>w19</code> に加算します。<code>b 0x10</code> によってループに戻り、これを繰り返して <code>fibo</code> を計算します。
:<syntaxhighlight lang=c-objdump line start=25>
30: 0b130000 add w0, w0, w19
34: a9414ff4 ldp x20, x19, [sp, #0x10]
38: a8c27bfd ldp x29, x30, [sp], #0x20
3c: d65f03c0 ret
</syntaxhighlight>
:* '''結果を返す''':計算が完了したら、結果(<code>w0</code>)を返します。スタック上に保存していた <code>x20</code>、<code>x19</code>、<code>x29</code>、および <code>x30</code> を復元し、<code>ret</code> で関数から戻ります。
wzrはゼロレジスターを32bitで参照しています、spはスタックポインターでアドレス演算の文脈と左辺値の文脈ではスタックポインター、右辺値の場合はゼロレジスターになりレジスタインデックス(31番)を共有しています。
aarch64 では32bitARMと違って全ての命令に条件フラッグ参照が着くわけではないので、どちらかというと Thumb に似ていますが最小命令サイズは32bitです。
=== amd64プロセッサーの例 ===
amd64(X86-64とも)の命令は最小単位は1バイトで、バイト数あたりの操作が多いのが特徴です。
逆アッセンブルされたコードを読む限り不便は感じませんが、ハンドディスアッセンブルする場合は1バイトずれるとまるで違った意味になるのが厄介で、プロセッサーの中でも数命令先の命令を読み込み実行効率を上げる為に命令の切れ目を探すことが性能向上のボトルネックになっています(ARMなら次の命令は4バイト先と決まっているので深い先読みが相対的に容易)。
;同じコードをamd64向けにコンパイル:<syntaxhighlight lang=c-objdump line>
$ clang-19 --target=amd64 -c -Oz -g fibo.c
$ llvm-objdump-19 --triple=amd64 -S fibo.o
fibo.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <fibo>:
; int fibo(int n) {
0: 55 pushq %rbp
1: 48 89 e5 movq %rsp, %rbp
4: 41 56 pushq %r14
6: 53 pushq %rbx
7: 89 fb movl %edi, %ebx
9: 45 31 f6 xorl %r14d, %r14d
; if (n == 0 || n == 1)
c: 83 fb 02 cmpl $0x2, %ebx
f: 72 10 jb 0x21 <fibo+0x21>
; return fibo(n-1) + fibo(n-2);
11: 8d 7b ff leal -0x1(%rbx), %edi
14: e8 00 00 00 00 callq 0x19 <fibo+0x19>
19: 41 01 c6 addl %eax, %r14d
1c: 83 c3 fe addl $-0x2, %ebx
1f: eb eb jmp 0xc <fibo+0xc>
; }
21: 44 01 f3 addl %r14d, %ebx
24: 89 d8 movl %ebx, %eax
26: 5b popq %rbx
27: 41 5e popq %r14
29: 5d popq %rbp
2a: c3 retq
</syntaxhighlight>
このアセンブリコードは、x86-64 アーキテクチャ用にコンパイルされた再帰的なフィボナッチ関数 <code>fibo</code> の内容を示しています。各命令が何をしているか解説します。
:<syntaxhighlight lang=c-objdump line start=10>
0: 55 pushq %rbp
1: 48 89 e5 movq %rsp, %rbp
4: 41 56 pushq %r14
6: 53 pushq %rbx
7: 89 fb movl %edi, %ebx
9: 45 31 f6 xorl %r14d, %r14d
</syntaxhighlight>
:* '''スタックフレームの設定''':<code>pushq %rbp</code> と <code>movq %rsp, %rbp</code> によってスタックフレームを設定しています。また、関数内で使用する <code>%r14</code> と <code>%rbx</code> レジスタをスタックに退避させ、関数終了時に復元できるようにしています。
:* '''引数の格納と初期化''':引数 <code>n</code> は <code>%edi</code> レジスタに格納されているため、これを <code>%ebx</code> に移しています(<code>movl %edi, %ebx</code>)。また、<code>%r14d</code> をゼロクリアして初期化しています。この <code>%r14</code> は、最終的な戻り値のための一時的な蓄積レジスタとして使用されます。
:<syntaxhighlight lang=c-objdump line start=17>
c: 83 fb 02 cmpl $0x2, %ebx
f: 72 10 jb 0x21 <fibo+0x21>
</syntaxhighlight>
:* '''条件チェック''':引数 <code>n</code> の値が 2 未満 (<code>n < 2</code>) かどうかを比較しています。<code>cmpl $0x2, %ebx</code> によって <code>%ebx</code>(<code>n</code> の値)と定数 <code>2</code> を比較し、<code>jb</code>(jump if below)命令によって <code>n < 2</code> の場合は、アドレス <code>0x21</code> にジャンプします。これは、フィボナッチ数列の初期条件に当たるケースです。
:<syntaxhighlight lang=c-objdump line start=20>
11: 8d 7b ff leal -0x1(%rbx), %edi
14: e8 00 00 00 00 callq 0x19 <fibo+0x19>
19: 41 01 c6 addl %eax, %r14d
1c: 83 c3 fe addl $-0x2, %ebx
1f: eb eb jmp 0xc <fibo+0xc>
</syntaxhighlight>
:* '''再帰呼び出し''':
:** <code>leal -0x1(%rbx), %edi</code> によって、<code>%edi</code> に <code>n - 1</code> を設定し、<code>fibo(n-1)</code> を呼び出します。
:** <code>callq</code> 命令の後で <code>%eax</code> に返り値が格納されます。この <code>%eax</code> の値(<code>fibo(n-1)</code> の結果)を <code>%r14d</code> に加算して、合計を蓄積します。
:** 次に、<code>%ebx</code>(<code>n</code> の値)を <code>n - 2</code> に更新し、再び <code>jmp 0xc</code> によって <code>n - 2</code> での再帰を行い、計算が完了するまで繰り返します。
:<syntaxhighlight lang=c-objdump line start=26>
21: 44 01 f3 addl %r14d, %ebx
24: 89 d8 movl %ebx, %eax
26: 5b popq %rbx
27: 41 5e popq %r14
29: 5d popq %rbp
2a: c3 retq
</syntaxhighlight>
:* '''戻り値の設定と終了処理''':ここで蓄積していた <code>%r14d</code> を <code>%ebx</code> に加算し、最終的な戻り値を <code>%eax</code> に格納します。そして、保存しておいたレジスタ <code>%rbx</code>、<code>%r14</code>、<code>%rbp</code> を復元し、<code>retq</code> 命令で関数から戻ります。
このコードは再帰的なフィボナッチ関数を最適化していますが、各再帰呼び出しの後に部分的な結果を加算していくため、再帰が深くなるとスタックの使用量が増えます。このコードは、コンパイラの最適化オプション <code>-Oz</code> によりコードサイズが最小化されています。
==== x86(32ビット)のコード ====
;x86(32ビット)のコード:<syntaxhighlight lang=c-objdump line>
$ clang-19 --target=i686 -c -Oz -g fibo.c
$ llvm-objdump-19 --triple=i686 -S fibo.o
fibo.o: file format elf32-i386
Disassembly of section .text:
00000000 <fibo>:
; int fibo(int n) {
0: 55 pushl %ebp
1: 89 e5 movl %esp, %ebp
3: 57 pushl %edi
4: 56 pushl %esi
5: 31 ff xorl %edi, %edi
7: 8b 75 08 movl 0x8(%ebp), %esi
; if (n == 0 || n == 1)
a: 83 fe 02 cmpl $0x2, %esi
d: 72 11 jb 0x20 <fibo+0x20>
; return fibo(n-1) + fibo(n-2);
f: 8d 46 ff leal -0x1(%esi), %eax
12: 50 pushl %eax
13: e8 fc ff ff ff calll 0x14 <fibo+0x14>
18: 59 popl %ecx
19: 01 c7 addl %eax, %edi
1b: 83 c6 fe addl $-0x2, %esi
1e: eb ea jmp 0xa <fibo+0xa>
; }
20: 01 fe addl %edi, %esi
22: 89 f0 movl %esi, %eax
24: 5e popl %esi
25: 5f popl %edi
26: 5d popl %ebp
27: c3 retl
</syntaxhighlight>
このアセンブリコードは、i386(32ビット)アーキテクチャ用にコンパイルされた再帰的なフィボナッチ関数 <code>fibo</code> の内容を示しています。各命令が何をしているかを解説します。
:<syntaxhighlight lang=c-objdump line start=10>
0: 55 pushl %ebp
1: 89 e5 movl %esp, %ebp
3: 57 pushl %edi
4: 56 pushl %esi
5: 31 ff xorl %edi, %edi
7: 8b 75 08 movl 0x8(%ebp), %esi
</syntaxhighlight>
:* '''スタックフレームの設定''':<code>pushl %ebp</code> と <code>movl %esp, %ebp</code> で新しいスタックフレームを作成します。また、関数内で使用するレジスタ <code>%edi</code> と <code>%esi</code> をスタックに保存して、関数終了時に復元できるようにしています。
:* '''初期化''':<code>xorl %edi, %edi</code> によって <code>%edi</code> をゼロクリアしています。このレジスタは結果の一時的な蓄積に使われます。
:* '''引数の取得''':引数 <code>n</code> はスタックから取り出して <code>%esi</code> に格納しています(<code>movl 0x8(%ebp), %esi</code>)。これは、<code>fibo</code> 関数の引数 <code>n</code> です。
:<syntaxhighlight lang=c-objdump line start=17>
a: 83 fe 02 cmpl $0x2, %esi
d: 72 11 jb 0x20 <fibo+0x20>
</syntaxhighlight>
:* '''条件チェック''':<code>cmpl $0x2, %esi</code> で <code>%esi</code>(引数 <code>n</code>)と <code>2</code> を比較し、<code>jb</code>(jump if below)命令によって <code>n < 2</code> の場合にアドレス <code>0x20</code> にジャンプします。これは、フィボナッチ数列の初期条件をチェックする部分です。
:<syntaxhighlight lang=c-objdump line start=20>
f: 8d 46 ff leal -0x1(%esi), %eax
12: 50 pushl %eax
13: e8 fc ff ff ff calll 0x14 <fibo+0x14>
18: 59 popl %ecx
19: 01 c7 addl %eax, %edi
1b: 83 c6 fe addl $-0x2, %esi
1e: eb ea jmp 0xa <fibo+0xa>
</syntaxhighlight>
:* '''再帰呼び出し''':
:** <code>leal -0x1(%esi), %eax</code> によって、<code>%eax</code> に <code>n - 1</code> を設定し、次の再帰呼び出しの引数とします。
:** <code>pushl %eax</code> で引数をスタックにプッシュし、<code>calll</code> によって <code>fibo(n-1)</code> を再帰呼び出しします。
:** 呼び出しが終わったら <code>%eax</code> に戻り値が格納されます。これを <code>%edi</code> に加算して、合計を蓄積します。
:** <code>addl $-0x2, %esi</code> により <code>%esi</code> を <code>n - 2</code> に更新し、<code>jmp 0xa</code> で <code>n - 2</code> の場合の計算を再び行います。
:<syntaxhighlight lang=c-objdump line start=28>
20: 01 fe addl %edi, %esi
22: 89 f0 movl %esi, %eax
24: 5e popl %esi
25: 5f popl %edi
26: 5d popl %ebp
27: c3 retl
</syntaxhighlight>
:* '''戻り値の設定と終了処理''':最終的に <code>%edi</code>(<code>fibo(n-1)</code> の結果の蓄積)が <code>%esi</code> に加算され、戻り値として <code>%eax</code> に格納されます。スタックから <code>%esi</code>、<code>%edi</code>、<code>%ebp</code> を復元し、<code>retl</code> によって関数から戻ります。
このコードも再帰的なフィボナッチ関数を実装しています。再帰呼び出しでの部分的な計算結果が <code>%edi</code> に蓄積され、スタックの使用が少ないように最適化されています。
== まとめ ==
* 異なるプロセッサーでは、同じ高級言語のコードが全く違う機械語命令列にコンパイルされる。
* 同じプロセッサーでも命令モードによって、同じ高級言語のコードが全く違う機械語命令列にコンパイルされる。
* 再帰などのプログラム構造もコンパイラーによって(意味解析され)等価のより速度的に(あるいはメモリーフットプリント的に)優れたコードに置き換えられる(事がある)。
{{コラム|機械語 = バイナリーデータ?|
機械語はバイナリーデータですが、全てのバイナリーデータが機械語ではありません。
例えば、画像データや映像データはバイナリーデータですが機械語ではありません。
実行ファイルもバイナリーデータですが、オペレーションシステムが「どの様に配置するのか?」「どの位置から実行するのか?」あるいは「初期化済みのデータ領域の値」など機械語以外の付帯的な情報(一般にヘッダーと呼ばれます)を重層的に持っているので、機械語を含んでいますが機械語そのものではありません。
機械語は、アセンブラのニーモニックに一対一で対応するコードと理解するとわかりやすいと思います。
}}
== 用語集 ==
機械語に関する用語集
* オペコード(Opcode) - 機械語命令の操作コード。特定の動作を実行するための識別子。
* オペランド(Operand) - オペコードによって指定された操作対象。演算の対象となる数値やアドレス。
* レジスタ(Register) - CPU内にある高速なメモリ領域で、演算に使用されるデータやアドレスを格納するために使用される。
* フラグ(Flag) - CPUの状態を示すビットで、演算の結果を表す。フラグは、CPU内部で条件分岐を行うために使用される。
* メモリアドレス(Memory Address) - メモリ内の特定の場所を示す番号。機械語のオペランドとして使用されることが多い。
* メモリマップドI/O(Memory-mapped I/O) - I/Oデバイスを制御するために、メモリアドレスを使用する方法。
* ファイルI/O(File I/O) - ディスクやネットワーク上のファイルを操作するために使用される命令。
* 命令ポインタ(Instruction Pointer) - CPUが次に実行する機械語命令のアドレスを示すレジスタ。
* サブルーチン(Subroutine) - 他の部分から呼び出される、独立した機械語のブロック。
* スタック(Stack) - プログラム内で一時的なデータを格納するためのメモリ領域。
* エンディアン(Endian) - データの並び順を示す方法。リトルエンディアンは、最下位バイトから順にデータを配置する方式。ビッグエンディアンは、最上位バイトから順にデータを配置する方式。
* マシンサイクル(Machine Cycle) - CPUが一つの命令を実行するために必要なサイクル数。
* 命令セット(Instruction Set) - 特定のCPUが実行できる機械語命令の集合。
* アセンブラ(Assembler) - アセンブリ言語を機械語に変換するプログラム。
* リンカ(Linker) - 複数のオブジェクトファイルを結合して、実行可能なプログラムを生成するプログラム。
* デバッガ(Debugger) - プログラムの実行中に、機械語命令やレジスタの値を監視し、プログラムの動作を解析するツール。
* トレース(Trace) - プログラムの実行中に、実行された命令やメモリアクセスなどの履歴を保存すること。
* ブレークポイント(Breakpoint) - プログラムの実行中に、特定の命令の実行を一時停止し、デバッグのために命令の内容やレジスタの値を確認するために使用されるポイント。
* クロスコンパイラ(Cross-compiler) - 特定のCPU向けに、異なるプラットフォームでコンパイルするためのコンパイラ。
* リバースエンジニアリング(Reverse Engineering) - プログラムやハードウェアの動作を解析して、仕様や設計図を作成するプロセス。
* コンパイル(Compile) - 高水準言語で書かれたプログラムを、機械語に変換するプロセス。
* リンク(Link) - コンパイルされた複数のオブジェクトファイルを、実行可能なプログラムに結合するプロセス。
* アセンブル(Assemble) - アセンブリ言語で書かれたプログラムを、機械語に変換するプロセス。
* ローダ(Loader) - プログラムをメモリに読み込み、実行可能な状態にするプログラム。
* バイトコード(Bytecode) - 実行環境に依存しない、仮想マシン上で実行される機械語。
* オーバーフロー(Overflow) - データ型の最大値を超える演算が行われた場合に発生する、予期しない結果のこと。
* セグメンテーション違反(Segmentation Fault) - プログラムがメモリの範囲外をアクセスしようとした場合に発生するエラー。
* プロセス(Process) - プログラムの実行中に割り当てられる、メモリやレジスタ、実行状態などのリソースの集合。
* マルチプロセッシング(Multiprocessing) - 複数のプロセッサを使用して、プログラムを並列に処理する方式。
== 脚註 ==
<references/>
[[Category:機械語|*]]
[[Category:プログラミング言語]]
hnwwtqj6q3ykxjqnjgslos9ejtr2lwc
小学校社会/私たちの住む都道府県の特ちょう
0
27378
263385
255014
2024-11-12T13:14:24Z
にくぬきカレー
84903
/* 都道府県 */
263385
wikitext
text/x-wiki
{{Pathnav|小学校の学習|小学校社会|frame=1}}
このページでは、日本の'''{{Ruby|都道府県|とどうふけん}}'''について{{Ruby|紹介|しょうかい}}します。
== 都道府県 ==
[[ファイル:Map of the prefectures of Japan with claimed territories.png|right|400px|thumb|都道府県区分]]
日本には、{{ruby|都道府県|とどうふけん}}と いって、{{ruby|国土|こくど}}が、{{ruby|区分|くわ|け}}されています。青森県(あおもりけん)や鹿児島県(かごしまけん)などの {{big|県}} (けん)が43個で、{{big|東京都}}(とうきょうと)で {{big|都}}(と)が1個で、{{big|北海道}}(ほっかいどう) で {{big|道}} (どう)が1個で、{{big|府}}(ふ)が {{big|京都府}}(きょうとふ) および {{big|大阪府}}(おおさかふ) の2個で、つまり「1都1道2府43県」、あわせると47個あるので {{big|47都道府県}} (よんじゅうなな とどうふけん)と言います。
日本の都道府県は8つの{{big|地方}}(ちほう)に、分けられます。
県名と県庁所在地名を、おぼえてください。
:{| style="margin:auto;"
|+ 地方区分と都道府県
| style="padding-right:1em; vertical-align:top;" |
<div class="center">北海道(ほっかいどう)地方</div>
----
# 北海道
| style="padding-right:1em; vertical-align:top;" |
<div class="center">東北地方(とうほく ちほう)</div>
----
# <li value="2">{{Ruby|青森|あおもり}}県
# {{Ruby|岩手|いわて}}県
# {{Ruby|宮城|みやぎ}}県
# {{Ruby|秋田|あきた}}県
# {{Ruby|山形|やまがた}}県
# {{Ruby|福島|ふくしま}}県
| style="padding-right:1em; vertical-align:top;" |
<div class="center">関東地方(かんとう ちほう)</div>
----
# <li value="8">{{Ruby|茨城|いばらき}}県
# {{Ruby|栃木|とちぎ}}県
# {{Ruby|群馬|ぐんま}}県
# {{Ruby|埼玉|さいたま}}県
# {{Ruby|千葉|ちば}}県
# {{Ruby|東京都|とうきょうと}}
# {{Ruby|神奈川|かながわ}}県
| style="padding-right:1em; vertical-align:top;" |
<div class="center">中部地方(ちゅうぶ ちほう)</div>
----
# <li value="15">{{Ruby|新潟|にいがた}}県
# {{Ruby|富山|とやま}}県
# {{Ruby|石川|いしかわ}}県
# {{Ruby|福井|ふくい}}県
# {{Ruby|山梨|やまなし}}県
# {{Ruby|長野|ながの}}県
# {{Ruby|岐阜|ぎふ}}県
# {{Ruby|静岡|しずおか}}県
# {{Ruby|愛知|あいち}}県
|-
| style="padding-right:1em; vertical-align:top;" |
<div class="center">近畿地方(きんき ちほう)</div>
----
# <li value="24">{{Ruby|三重|みえ}}県
# {{Ruby|滋賀|しが}}県
# {{Ruby|京都府|きょうとふ}}
# {{Ruby|大阪府|おおさかふ}}
# {{Ruby|兵庫|ひょうご}}県
# {{Ruby|奈良|なら}}県
# {{Ruby|和歌山|わかやま}}県
| style="padding-right:1em; vertical-align:top;" |
<div class="center">中国地方(ちゅうごく ちほう)</div>
----
# <li value="31">{{Ruby|鳥取|とっとり}}県
# {{Ruby|島根|しまね}}県
# {{Ruby|岡山|おかやま}}県
# {{Ruby|広島|ひろしま}}県
# {{Ruby|山口|やまぐち}}県
| style="padding-right:1em; vertical-align:top;" |
<div class="center">四国地方(しこく ちほう)</div>
----
# <li value="36">{{Ruby|徳島|とくしま}}県
# {{Ruby|香川|かがわ}}県
# {{Ruby|愛媛|えひめ}}県
# {{Ruby|高知|こうち}}県
| style="padding-right:1em; vertical-align:top;" |
<div class="center">九州地方(きゅうしゅう ちほう)</div>
----
# <li value="40">{{Ruby|福岡|ふくおか}}県
# {{Ruby|佐賀|さが}}県
# {{Ruby|長崎|ながさき}}県
# {{Ruby|熊本|くまもと}}県
# {{Ruby|大分|おおいた}}県
# {{Ruby|宮崎|みやざき}}県
# {{Ruby|鹿児島|かごしま}}県
# {{Ruby|沖縄|おきなわ}}県
|}
くわしくは、4年生や5年生でならいます。
3年生は、いろんな地域の気候(きこう)と、その地域での暮らしを勉強していきましょう。
さいしょから全部をじゅんばんに、おぼえようとするのでなく、いろんな地方をかたよりなく学んでください。
たとえば九州について、県を1つか2つぐらい勉強をしたら、つぎは東北や北海道など、北のほうの地方を勉強してください。
都道府県の数は40個以上もあるので、じゅんばんにしらべようとすると、南西のほうの県ばかりを勉強してしまったり、あるいは北東のほうの県ばかりを勉強してしまいます。
※注意 画像素材の関係で、紹介する画像の内容が偏っています。ウィキペディアに地名の場所を説明した画像が少ないです。勉強する人は、他の書籍で地名の場所を学んでください。
:{| class="wikitable" style="text-align:center"
|+ 都道府県の県庁所在地
! 県名 !! 県庁所在地 !! 県名 !! 県庁所在地
|-
! 北海道
| 札幌市
! 青森県
| 青森市
|-
! 岩手県
| {{Ruby|盛岡|もりおか}}市
! 宮城県
| {{Ruby|仙台|せんだい}}市
|-
! 秋田県
| 秋田市
! 山形県
| 山形市
|-
! 福島県
| 福島市
! 茨城県
| {{Ruby|水戸|みと}}市
|-
! 栃木県
| {{Ruby|宇都宮|うつのみや}}市
! 群馬県
| {{Ruby|前橋|まえばし}}市
|-
! 埼玉県
| さいたま市
! 千葉県
| 千葉市
|-
! 東京都
| 東京<ref>表記上では東京ですが、実際に都庁があるのは新宿区です。</ref>
! 神奈川県
| {{Ruby|横浜|よこはま}}市
|-
! 新潟県
| 新潟市
! 富山県
| 富山市
|-
! 石川県
| 金沢市
! 福井県
| 福井市
|-
! 山梨県
| {{Ruby|甲府|こうふ}}市
! 長野県
| 長野市
|-
! 岐阜県
| 岐阜市
! 静岡県
| 静岡市
|-
! 愛知県
| {{Ruby|名古屋|なごや}}市
! 三重県
| {{Ruby|津|つ}}市
|-
! 滋賀県
| {{Ruby|大津|おおつ}}市
! 京都府
| 京都市
|-
! 大阪府
| 大阪市
! 兵庫県
| {{Ruby|神戸|こうべ}}市
|-
! 奈良県
| 奈良市
! 和歌山県
| 和歌山市
|-
! 鳥取県
| 鳥取市
! 島根県
| {{Ruby|松江|まつえ}}市
|-
! 岡山県
| 岡山市
! 広島県
| 広島市
|-
! 山口県
| 山口市
! 徳島県
| 徳島市
|-
! 香川県
| {{Ruby|高松|たかまつ}}市
! 愛媛県
| {{Ruby|松山|まつやま}}市
|-
! 高知県
| 高知市
! 福岡県
| 福岡市
|-
! 佐賀県
| 佐賀市
! 長崎県
| 長崎市
|-
! 熊本県
| 熊本市
! 大分県
| 大分市
|-
! 宮崎県
| 宮崎市
! 鹿児島県
| 鹿児島市
|-
! 沖縄県
| {{Ruby|那覇|なは}}市
|-
|}
== 九州地方 ==
[[ファイル:Kyushu-jp.png|upright|250px|thumb|light|九州地方の地図]]
九州は気候があたたかいので、野菜の早づくり「{{Ruby|促成栽培|そくせい さいばい}}」が多いです。九州南部は台風の通り道になることが多いです。
九州北部の福岡県や佐賀県には{{Ruby|筑紫山地|つくしさんち}}があり、九州中部の熊本県や宮崎県には九州山地があります。
工業については、1970年代ごろから、コンピュータ部品のICなどの電子部品の工場が、九州の各地に進出している。このため、九州は全国的にも電子部品の生産が、さかんな地域になっており、九州をシリコン アイランドという<ref>「シリコン」とは、電子部品に使われている材料の一種であり、半導体という材料の一種である。</ref>。
=== 沖縄県 ===
;県庁所在地 {{Ruby|:那覇|なは}}市
{{Ruby|沖縄県|おきなわけん}}は、一年中あたたかいです。
いっぱんに、気候は{{Ruby|赤道|せきどう}}に近い地域ほど、あたたかいのが普通です。
沖縄は、雨が多いです。
沖縄は、あたたかく、雨が多いので、農業はパイナップルやサトウキビづくりやマンゴーづくりが、さかんです。
沖縄の農業は、食べ物だけでは、ありません。
キクやランなどの、花をつくっている農家もあります。沖縄は、あたたかいので、冬でも花がよく育つのです。また、促成栽培も、あたたかいのでできます。
工業は、食品加工が中心です。サトウキビの加工などです。
沖縄は、かつて、琉球王国などのいくつかの国からなる、日本とはべつの国だったこともあり、独自の文化があるので、そのことを{{Ruby|観光資源|かんこうしげん}}にした観光業もさかんです。
* 台風
沖縄は、{{Ruby|台風|たいふう}}が多いです。
なので、伝統的な家は、{{Ruby|屋根|やね}}が{{Ruby|低|ひく}}いです。そのような伝統的な家は、{{Ruby|石垣|いしがき}}が多いです。屋根は、かわらをしっくいでかためてあります。
{{Ruby|{{big|防風林}}|ぼうふうりん}}も多いです。
石垣や防風林は、台風の風を防ぐためです。
最近では、コンクリートづくりの家も、おおいです。このような家のおおくは、屋根がたいらです。屋根がたいらなのは、家をひくくすることで台風のえいきょうをへらすためです。
* 水不足
沖縄では、川が短くすぐ海にながれでてしまうので、{{Ruby|飲水|のみみず}}がたりなくなる、つまり水不足になりやすいです。なので、地下ダムをつくって水をためたりします。家庭に貯水タンクをそなえるばあいもあります。
* {{Ruby|生態系|せいたいけい}}
沖縄には、ほかの地方には見られない、独自の動物や植物もいます。たとえば、イリオモテヤマネコというネコ科のヤマネコの動物も生息しています。
ほかにも、ヤンバルクイナという鳥の生息地でもあります。
沖縄のまわりの海には、さんごしょうが生息しています。さんごしょうは、あたたかい海域でないと生きられません。
<gallery>
File:Iriomote cat Stuffed specimen.jpg|イリオモテヤマネコの{{Ruby|剥製|はくせい}}。東京の国立科学博物館の展示。
File:Gallirallus okinawae Stuffed specimen.jpg|ヤンバルクイナの剥製。(東京の国立科学博物館の展示)
File:Micro cosmos (2113152913).jpg|サンゴ礁(沖縄県本部町)
</gallery>
* 沖縄のれきし
[[ファイル:Naha Shuri Castle16s5s3200.jpg|thumb|300px|首里城]]
沖縄は、もともと,江戸時代までは、{{Ruby|{{big|琉球}}|りゅうきゅう}}という、日本とは、べつの国でした。今の沖縄の島々のあたりで、もっとも大きな国が琉球という王国だったので、琉球王国が沖縄県の前の名前のように、言うことがあります。
沖縄県の{{Ruby|那覇市|なはし}}にある{{Ruby|{{big|守礼門}}|しゅれいもん}}は、この琉球の王朝のころに琉球国の国王が住んでいた{{Ruby|{{big|首里城}}|しゅりじょう}}という{{Ruby|城|しろ}}の正門です。首里城は{{Ruby|世界遺産|せかいいさん}}に登録されています。{{Ruby|首里|しゅり}}は、今でいう{{Ruby|那覇|なは}}のことです。
琉球は、江戸時代に日本国の領土になりました。
そのあと、明治時代の{{Ruby|廃藩置県|はいはんちけん}}のときに、琉球が沖縄県になりました。
第二次大戦のあと、沖縄はアメリカ合衆国に占領されました。そのあと、日本に沖縄が1972年に返還されました。
沖縄には、おおくのアメリカ軍の基地などの軍用地があります。アメリカの軍用地の70%くらいが沖縄県にあります。
なお、アメリカの{{Ruby|軍事基地|ぐんじきち}}は沖縄以外の場所にもあります。たとえば青森県の{{Ruby|三沢基地|みさわ きち}}とか、東京都の{{Ruby|横田基地|よこたきち}}とか、神奈川県の{{Ruby|横須賀基地|よこすかきち}}とか、山口県の{{Ruby|岩国基地|いわくにきち}}です。
外国で言う軍隊に{{Ruby|相当|そうとう}}する、日本の役所はどこかというと、{{Ruby|自衛隊|じえいたい}}という役所が相当します。自衛隊の{{Ruby|駐屯地|ちゅうとんち}}は日本の各地にあります。
日本国は、アメリカと同盟(どうめい)をむすんでいます。同盟とは、自分の国が、ほかの国の軍隊などから、攻め(せめ)こまれた時に、協力しあって攻め込んできた相手をやっつけるという、国と国どうしの約束です。
[[ファイル:Himeyuri Monument-2.jpg|thumb|250px|沖縄のひめゆりの塔]]
第二次世界大戦の戦争中には、男の多くは、国の命令で兵士として、かりだされました。女も人手(ひとで)が足りないので、国の命令で女も働き手としてはたらかされます。
学生も、例外ではありません。
このうち、沖縄のいくつかの女学校で女生徒らが看護要員として、傷病兵の看護要員としてかりだされます。学生が兵士や軍隊での働き手として、戦場や戦場に近いところにかりだすことを、{{big|学徒動員}}(がくとどういん)といいます。
終戦間近の沖縄戦で、沖縄の女学校の学徒隊らも、アメリカ軍の攻撃のまきぞえになります。
{{big|ひめゆりの塔}} は、そのような悲劇の記憶を風化させないように残すための慰霊碑(いれいひ)です。
{{clear}}
=== 鹿児島県 ===
[[ファイル:Osumi Peninsula Kagoshima Japan SRTM.jpg|thumb|240px|衛星から見た桜島(写真左上部)]]
;県庁所在地 :鹿児島市
鹿児島県は、火山が多いです。たとえば、桜島(さくらじま)の活火山や、霧島(きりしま)などです。そのため、鹿児島の土は火山灰を多く含んでいます。
火山灰を多く含んだ土地の台地を {{big|シラス台地}}(シラスだいち)といいます。
*農業
シラス台地の多い九州南部では、畑作(はたさく)が、さかんです。
シラスは、水を通しやすいので、水がたまりにくいです。
なので、鹿児島の農業では水が使いづらいので、鹿児島では、稲(いね)が育てにくいのです。
鹿児島の農業では、このシラス台地でそだつ農作物でないと、よく育ちません。なので、作物に与える水が少なくても、よく育つ作物が、鹿児島の農業では多いです。
たとえば サツマイモ や 茶(ちゃ) です。
サツマイモの生産は2014年現在、日本一です。サツマイモは水不足につよく、長持ちしやすいです。
茶の生産もさかんです。
鹿児島も沖縄のように、台風が通りやすいです。
台風は沖縄ほど多くは無いですが、東京や北海道などとくらべると、鹿児島は台風にあいやすいです。
鹿児島や宮崎県でも、防風林が多いです。
鹿児島の水の不足の理由は、シラス台地によるものなので、雨そのものの多さはふつうです。
* 沖合
南方の沖合には、種子島(たねがしま)や屋久島(やくしま)や奄美諸島(あまみしょとう)、奄美大島(あまみおおしま)や徳之島(とくのしま)などがあります。
種子島は、戦国時代の1543年(天文(てんぶん)12年)に鉄砲が伝来した土地です。種子島に流れ着いたポルトガル人によって、鉄砲が伝来しました。
* 畜産業
鹿児島の畜産業では、ニワトリを育てたり、ブタを育てたりする畜産業もさかんです。
鹿児島湾をはさんで、地図の右側(つまり西側)が大隅半島(おおすみ はんとう)で、左側(東側)の半島が薩摩半島(さつま はんとう)です。
薩摩半島の先端にある枕崎港(まくらざき こう)は、カツオ漁の遠洋漁業の拠点です。そのため鹿児島はカツオ節の生産も有名です。
薩摩(さつま)とは、鹿児島の地方のことを言う古いよび方で、明治時代よりも前のよび方です。
* 工業
:福岡などの九州北部はIC産業で有名で、九州のIC工場などのコンピュータ部品の工業地域が{{big|シリコンアイランド}}などと呼ばれていますが、近年では鹿児島にもIC工場などが進出しています。
* 宇宙開発
:種子島には、ロケット打ち上げなどの宇宙開発の施設である種子島宇宙センターがあります。
{{clear}}
=== 宮崎県 ===
:県庁所在地・・・宮崎市
沖合を、暖流である黒潮(日本海流)が流れているので、一年中、あたたかい。
宮崎平野(みやざき へいや)の農家では、暖かい気候を利用して、米の早づくりが多いです。
平野(へいや)とは、平らな場所で、とても広い場所です。
米だけでなく、野菜や果物も、早づくりが多いです。キュウリ・ピーマン・カボチャ・トマトなどの早づくりです。
早づくりは、促成栽培(そくせい さいばい)のことです。
なので、ビニールハウスが多いです。
畜産業もさかんである。ブタやニワトリの飼育がさかん。
宮崎県の北西部には九州山地があります。
工業では、延岡(のべおか)市の化学工業や、日南(にちなん)市のパルプ工業です。九州北部は、コンピュータ部品の製造が活発ですが、わりと九州南部である宮崎市にもIC部品などの工場が進出しています。
{{clear}}
=== 熊本県 ===
:県庁所在地・・・熊本市
[[File:Edge of Aso caldera.jpg|right|thumb|right|220px|日本の阿蘇カルデラ(カルデラ壁の一部)。南北25km、東西18km]]
[[File:Pinatubo92pinatubo caldera crater lake.jpg|thumb|right|220px|カルデラの参考。フィリピンのピナトゥボ山。]]
地図で見た場合、熊本県は、宮崎の西側。位置を間違えないように注意。
有明海に面してるほうが熊本県と覚えると、まちがえにくいだろう。
長崎と宮崎の間に、熊本がある。あるいは有明海に面しているのが熊本県で、宮崎は有明海に面していない、とでも覚える。
阿蘇山(あそざん)という山が熊本県の北西部の、大分県の境とのちかくにある。
阿蘇山は{{big|カルデラ}}という火山の頂上がくぼんだ地形で有名。
熊本は農業県。米作や、トマトやスイカ、ミカンなどの生産が有名。
水産業では、有明海では、のり、真珠、くるまえびの養殖がさかん。
四台公害病の一つの水俣病(みなまたびょう)が、熊本県の水俣湾の周辺で起きた。
熊本県の南西部の島は天草諸島(あまくさ しょとう)。
天草諸島では戦国時代にキリスト教が信仰されました。その後の江戸時代にキリスト教の信仰が禁止されたため、天草諸島で反乱が起きます。このときのキリスト教徒(当時の言葉では「キリシタン」)の反乱を、島原の乱(しまばらのらん)と言います。
九州北部は、コンピュータ部品のIC工場が多い地域であるが、熊本県も同様にIC工場が多く進出している。
{{clear}}
=== 大分県 ===
:県庁所在地・・・大分市
[[ファイル:Beppu Gulf.jpg|thumb|国東半島と瀬戸内海]]
[[ファイル:Yufuin Onsen -Musōen 02.jpg|thumb|由布院温泉。]]
九州の北東部にあり、県の北東部は瀬戸内海(せとないかい)に面している。
ちなみに大分県北部の海は周防灘(すおうなだ)である。
県南東部の海は豊後水道(ぶんご すいどう)である。
北東部の、瀬戸内海につきでている半島が国東半島(くにさき はんとう)である。
北東部の沿岸の気候は、温暖(おんだん)で雨が少ない、瀬戸内海式気候(せとないかいしき きこう)です。
県中部あたりにある別府(べっぷ)が温泉で有名。由布院(ゆふいん、湯布院)も温泉で有名。
県南部の沿岸はリアス式海岸です。
水産では、アジやサバの漁で有名。
大分県は、工業がさかんな県です。
臨海部には石油精製工場や石油化学工場などのコンビナートがあります。また、大分空港の周辺は、コンピュータ部品のIC産業がさかんです。
歴史的には、戦国時代にはキリスト教が、さかんな地域でした。
この戦国時代に、この地域を治めた戦国大名の大友宗麟は、熱心なキリスト教徒でした。
{{clear}}
=== 長崎県 ===
:県庁所在地・・・長崎市
西部の海岸は{{big|リアス式海岸}}(リアスしき かいがん)である。
長崎港では、漁業が、さかん。
大村湾や九十九島などでは、ぶり や かき や 真珠の養殖が、さかん。
長崎市と佐世保(させぼ)では、造船業がさかん。
大村湾の東部の大村市では、コンピュータ部品のIC産業がさかん。
雲仙岳(うんぜんだけ)が1990年〜1991年に噴火し、大きな被害が出た。
大村湾(おおむらわん)では、真珠(しんじゅ)の養殖がさかん。
[[ファイル:Tsushima island ja.png|thumb|対馬]]
離島の対馬(つしま)、壱岐(いき)、五島列島(ごとうれっとう)は長崎県。
江戸時代には、長崎の出島(でじま)が、オランダや今の中華人民共和国(当時はべつの国名)との貿易の拠点になった。
太平洋戦争中の1945年に、8月9日に長崎県に、アメリカにより原子爆弾が投下され、大きな被害を受けた。
長崎県は島の数がとても多く、島が971個あり、日本一の数である。県の面積のおよそ45%が離島である。
海岸線の長さは、北海道についで、第二位。海岸線の長さは4000km以上。
海岸線の近くに山地がせまっており、よって県内に大きな平野は無い。
{{clear}}
=== 佐賀県 ===
:県庁所在地・・・佐賀市
九州の北西部にあり、長崎と福岡の中間のあたりに位置している。長崎と熊本の間といってもよい。有明海の北部に佐賀県がある、とも言えるだろう。
有明海に面した筑紫平野では、江戸時代から干拓(かんたく)によって陸地が広げられてきた。
有明海では、のりの養殖などが、さかんである。
伝統工芸の焼き物の、有田焼(ありたやき)や伊万里焼(いまりやき)が有名である。
[[ファイル:ImariA.JPG|thumb|right|250px|18世紀に作られたと見られる有田焼(伊万里焼)]]
筑紫平野(つくしへいや)がある。筑後川(ちくごがわ)があり、クリークとよばれる、水路のいりくんだ地形が多い。
筑紫平野では、稲作がさかんである。筑紫平野を中心に、稲作や麦作がさかんです。
くだものの生産もさかんです。
弥生時代(6年生に詳しく勉強します)の遺跡である{{big|吉野ケ里遺跡}}(よしのがり いせき)は、佐賀県にある。
※ 佐賀の焼き物にかぎらず、陶磁器(とうじき)などの焼き物は、ねん土(ねんど)などの土をやいて作ったものです。
* 工業
鳥栖(とす)市ではゴムなどの化学工業があり、佐賀市は食品工業があります。
{{clear}}
=== 福岡県 ===
:県庁所在地・・・福岡市
伝統工芸では博多人形(はかたにんぎょう)がある。
[[File:武者人形.jpg|250px|right|thumb|侵略者を懲らしめる武士(白水六三郎 作)<br/>「元寇史料館」]]
中部に筑紫山地(つくしさんち)があり、筑紫山地の南部を筑後川(ちくごがわ)が流れており、筑後川は佐賀県へと通じる。
日本海の一部である北西部の海は玄界灘(げんかいなだ)と言います。
山口県と福岡県の間の海峡(かいきょう)は、関門海峡(かんもんかいきょう)といいます。
県庁所在地の福岡市は、人口が百万人をこえている百万都市であり、政令指定都市でもある。
筑紫平野で稲作や野菜、い草、茶の栽培がさかんです。
水産業は玄界灘では沿岸漁業がさかんです。南部の有明海に面している地域では のり の養殖がさかんです。
工業では、北九州工業地域の中心地域である。
{{clear}}
== 中国地方と四国地方 ==
中国地方と、四国地方のあいだにある海を、{{big|瀬戸内海}}(せとないかい)と言います。その、瀬戸内海に面している県(岡山県・広島県・香川県・愛媛県)を瀬戸内という場合があります。
瀬戸内では「雨がすくない」と聞くと、つい水不足などを想像して「発展がおくれている?」と想像しがちですが、中国地方の広島などは、まわりよりも発展しています。
交通では、{{big|瀬戸大橋}}(せとおおはし)という、中国地方の岡山県と、四国地方の香川県をむすぶ、大きな橋があります。
* 気候
四国地方では、四国どうしの県でも、四国山地の南北で気候がちがいます。
四国山地の北は、山にさえぎられるため、夏は雨が少なくなります。
中国地方は、中国地方どうしの県でも、中国山地の南北で気候がちがいます。中国山地の南は、山にさえぎられるため、冬は雨が少なくなります。
四国山地の北と、中国山地の南の、瀬戸内海の沿岸の地域では、一年中雨が少なくなります。このような瀬戸内の気候を瀬戸内気候(せとうち きこう)とか、瀬戸内海式気候(せとないかいしき きこう)などといいます。
中国地方のうち、鳥取などの中国山地の北側を 山陰(さんいん) といい、岡山や広島など中国山地の南のがわを 山陽(さんよう) といいます。
山陰地方では、冬には雪が多くふります。北陸ほどではないが、雪がふります。
* 瀬戸内工業地域
1960年代の高度経済成長のころから、重化学工場が、山口県岩国市などの瀬戸内地方の山陽の側に進出している。この地域は工業地域になっており、瀬戸内工業地域を、なしている。
<gallery>
File:季節風と山地 夏.svg|季節風と山地の関係(夏)
File:季節風と山地 冬.svg|季節風と山地の関係(冬)
ファイル:MinamiBisanSetoOhashi.jpg|手前が四国側。奥が中国側。
</gallery>
=== 香川県 ===
[[ファイル:Mannou-ike reservoir.jpg|thumb|250px|満濃池(まんのういけ)]]
:県庁所在地 ・・・ 高松市
:旧地名 ・・・ 讃岐(さぬき)
南方にある讃岐山脈(さぬきさんみゃく)と、さらに南方にある四国山地(しこくさんち)に雲をさえぎられるので、夏は雨が少ないです。
四国地方の上には中国地方があります。中国地方には東西に長く中国山地がのびているので、雲がさえぎられます。
このため、中国山地の南側は冬は雨が少ないです。
この中国地方の中国山地の南側と、四国地方の四国山地の北側のあいだにある海を、{{big|瀬戸内海}}(せとないかい)と言います。
香川県では、雨が少ないので {{big|ため池}}(ためいけ) が、つくられています。有名なため池に、満濃池(まんのういけ)が有名です。
また、香川用水(かがわようすい)が、あります。
北部では、讃岐平野(さぬき へいや)がひろがっています。
香川県の、瀬戸内海にうかぶ小豆島(しょうどしま)では、オリーブの栽培がさかんです。
食品の名物で、讃岐うどん(さぬき うどん)があります。
* 工業
北西部の坂出市で、化学工場などが、多いです。この地域は、瀬戸内工業地域に、ふくまれます。
{{clear}}
=== 徳島県 ===
[[File:Naruto-Strait 1.png|thumb|250px|鳴門海峡。]]
[[Image:Naruto Whirlpools taken 4-21-2008.jpg|250px|thumb|鳴門の渦潮]]
北部には讃岐山脈(さぬきさんみゃく)があります。讃岐山脈の北側は香川県です。
徳島県の南西部には、四国山地が、愛媛県から高知県をとおり徳島県まで、つづいています。
徳島県は、山がちの県です。県の面積の約8割が山地です。
ですが、徳島平野(とくしま へいや)は、四国で最大の面積です。
毎年、夏には、阿波踊りが行われます。阿波(あわ)とは、明治時代よりも前の古いよび方です。
藍染め(あいぞめ)という伝統工芸品があります。
鳴門海峡(なるとかいきょう)に大鳴門橋(おおなるときょう)がある。鳴門海峡は、'''うずしお'''で有名。
{{clear}}
=== 愛媛県 ===
西部は宇和海(うわかい)に面している。北部は瀬戸内海に面している。西部の宇和海に面した海岸は、{{big|リアス式海岸}}である。
'''みかん''' や '''いよかん''' の生産がさかんである。オレンジの輸入自由化などの影響で、みかん・いよかん・キウイフルーツ・レモンなどの生産にうつっている。
県庁所在地は、松山(まつやま)。
明治の俳句で有名な正岡子規(まさおか しき)や、正岡の親友で後に海軍中将になった秋山真之(あきやまさねゆき)は、愛媛県の松山の出身。
夏目漱石の小説「坊っちゃん」(ぼっちゃん)の舞台は松山であるが、夏目漱石は正岡および秋山と学生時代の知人である。
{{clear}}
=== 高知県 ===
:県庁所在地 ・・・ 高知市
高知県では、あたたかく雨が多いです。
高知の農業では、野菜の促成栽培、早つくりが有名です。なす・ピーマン・きゅうりなどが有名です。
漁業では、かつおが有名。カツオの一本づりやカツオぶしが有名。
坂本竜馬は、今でいう高知県の出身。
{{clear}}
=== 広島県 ===
[[File:20100723 Miyajima Itsukushima 5122.jpg|thumb|right|250px|厳島神社(いつくしま じんじゃ)]]
:県庁所在地 ・・・ 広島市
水産業は、'''かき'''の養殖で有名。
呉(くれ)市は造船業が、さかん。広島市の周辺では、自動車工業が、さかんである。
呉は、第二次大戦の終戦までは、海軍の拠点の軍港(ぐんこう)であり、また軍艦の造船所があった。
第二次世界大戦で、1945年の8月6日に、アメリカにより原子爆弾を投下される。
厳島神社(いつくしま じんじゃ)や、原爆ドームは世界文化遺産に、なっている。
{{clear}}
=== 岡山県 ===
:県庁所在地 ・・・ 岡山市
中国地方にあり、瀬戸内海に面している。県の北部には中国山地(ちゅうごく さんち)がある。蒜山(ひるぜん)には、ジャージー牛もいます。
四国の香川県と {{big|瀬戸大橋}}(せとおおはし) で、つながっている。
伝統工芸では、陶磁器(とうじき)で 備前焼(びぜんやき) が有名。(※ 瀬戸焼(せとやき)は愛知県の焼き物なので、まちがえないように。)
備前焼では、土を使います。たしか、田んぼの下とかの土を使います。
備前焼の土は、少なくなってきているといわれます(2019年の情報)。
岡山県民の方であれば、校外学習(こうがいがくしゅう)や社会科見学(しゃかいかげんがく)と呼(よ)ばれる行事(ぎょうじ)で、備前焼をつくると思います。
岡山には、埋立地(うめたてち)の岡山平野(おかやまへいや)があります。
倉敷(くらしき)に石油化学のコンビナートがある。
{{clear}}
=== 山口県 ===
:県庁所在地 ・・・ 山口市
水産業が、さかん。
下関では、ふぐ の水揚げが有名。
瀬戸内海の沿岸では重化学工業が発達しています。
岩国(いわくに)や周南(しゅうなん)などでは、化学工業などもさかんである。宇部市(うべ し)や小野田市(おのだ し)では、化学工業やセメント工業が、さかんである。
秋吉台(あきよしだい)は、カルスト地形で有名。
{{clear}}
=== 島根県 ===
:県庁所在地 ・・・ 松江(まつえ)市
島根県は、鳥取の西側。山口県と鳥取県のあいだに島根県がある。
水産業では、しじみ の養殖が、宍道湖(しんじこ)で、さかんである。
竹島(たけしま)は、韓国が不法に占拠しているが、本来は日本の領土であり、島根県に属する。
石見銀山(いわみぎんざん)の遺跡は世界遺産に登録されている。
{{clear}}
=== 鳥取県 ===
:県庁所在地 ・・・ 鳥取市
鳥取は中国地方にあり、日本海に面しています。
海岸にひろがる鳥取砂丘が(とっとり さきゅう)有名です。
[[ファイル:Tottori-Sakyu Tottori Japan.JPG|thumb|left|300px|鳥取砂丘]]
砂丘では、らっきょう、すいか、ながいも、なし などを生産している。
特産品で、二十世紀なし(にじっせいき なし) が有名です。
[[File:Nijusseiki nashi - Japanese pears by akira yamada.jpg|thumb|120px|二十世紀なし]]
2014年現在、47都道府県の中で、人口がもっとも少ない。
大山(だいせん)は、中国地方で、もっとも高い山である。標高1,729m。
{{clear}}
== 近畿地方 ==
=== 和歌山県 ===
紀伊半島(きい はんとう)の南西部にある。
温暖で、降水量が多い。
有田川(ありたがわ)の流域および紀ノ川(きのがわ)の流域で、みかんの栽培が、さかんです。
それ他に、はっさく・ゆず ・うめ・かきの栽培もさかんです。
参詣道(さんけいみち)は世界遺産。
和歌山県の南端の潮岬(しおの みさき)は、本州で最南端。
{{clear}}
=== 奈良県 ===
[[ファイル:Horyu-ji10s3200.jpg|300px|thumb|法隆寺]]
海に面していない。このように、海に面していない県のことを内陸県(ないりくけん)という。
温暖で、降水量が多い。
林業がさかんで、吉野杉(よしのすぎ)が有名。
かつて、奈良時代には日本の政治の中心地であった。そのため寺院などが多い。法隆寺(ほうりゅうじ)や東大寺(とうだいじ)は、世界遺産。
{{clear}}
=== 兵庫県 ===
[[画像:Akashi Bridge.JPG|300px|thumb|明石海峡大橋]]
日本標準時の子午線(しごせん)が明石(あかし)市に通る。東経135度の明石市がある。
瀬戸内海沿岸に工業地域があり、重化学工業が発達している。
姫路城(ひめじじょう)が、世界遺産に登録されている。
瀬戸内海に淡路島(あわじしま)が、うかんでいる。
本州と淡路島とのあいだに明石海峡大橋(あかしかいきょう おおはし)があり、また四国の徳島県鳴門市と淡路島とのあいだに大鳴門橋(おおなると きょう)がある。
{{clear}}
=== 大阪府 ===
古くから商業がさかんであり、江戸時代には「天下の台所」(てんか の だいどころ)と言われた。
大阪湾(おおさかわん)に面している。
工業では、阪神工業地帯(はんしん こうぎょうちたい)の中心である。
{{clear}}
=== 京都府 ===
794年に平安京が出来てから、江戸時代のおわりまで、京都に首都があった。
1994年に文化遺産として、京都市、宇治市、滋賀県の大津市の社寺が、文化遺産に登録された。
伝統工芸に、織物の西陣織(にしじんおり)や、焼き物の清水焼(きよみずやき)などがある。
北は日本海に面しており若狭湾(わかさわん)に接する。
{{clear}}
=== 三重県 ===
志摩半島(しまはんとう)の海岸はリアス式海岸である。
英虞湾(あごわん)では、真珠(しんじゅ)の養殖がさかん。
伊勢神宮(いせじんぐう)が志摩半島にある。
四日市市(よっかいちし)は、中共工業地帯の一部で、石油化学工業などが発達している。1960年代に公害(こうがい)で、'''四日市ぜんそく'''を起こした。排煙などにふくまれる亜硫酸(ありゅうさん)ガスが原因である。
{{clear}}
=== 滋賀県 ===
[[ファイル:Lake_biwa.jpg|300px|thumb|琵琶湖の衛星写真]]
滋賀県にある琵琶湖(びわこ)は、日本にある湖のなかでは、琵琶湖がもっとも面積が広く、県全体の面積の約6分の1を占める。琵琶湖には4つの島が浮かぶが、その中で最も面積が広い沖島は、日本の淡水湖で唯一人が住む島である。
海に面していない内陸県である。
琵琶湖の東岸の近江(おうみ)では米作がさかん。
延暦寺(えんりゃくじ)がある。延暦寺は平安時代に最澄が比叡山(ひえいざん)に開いた寺。
{{clear}}
== 中部地方 ==
中部地方は、以下のように分けることができます。
* 愛知県・静岡県・岐阜県(・三重県)…{{big|'''{{Ruby|東海|とうかい}}地方'''}}
* 新潟県・富山県・石川県・福井県…{{big|'''{{Ruby|北陸|ほくりく}}地方'''}}
* 長野県・山梨県…{{big|'''{{Ruby|甲信|こうしん}}地方'''}}
北陸地方は、日本海に面しており冬は雪が多いです。冬は日本海からしめりけをおびた空気がくるので、雪がふりやすいのです。
このような、ある季節にだけやってくる、とくちょうのある風を''' {{big|季節風}}'''(きせつふう) と言います。
雲は、列島をよこぎる山々にさえぎられるので、太平洋側にはあまり雪はふりません。たとえば、新潟の内陸側には越後山脈(えちごさんみゃく)があるので、山脈のむこうの太平洋側の内陸には、あまり雪はふりません。
日本海側に面する地域で、山々にさえぎられた雲はそこで雪を降らすので、日本海側は冬は雪が多くなります。
冬のあいだ、農家は雪で田畑が使えないので、べつの仕事をしていることが多いです。農家に限らず、ほかの仕事でも冬のあいだは、雪で交通もマヒ(麻痺)するので、はかどりません。
出かせぎ(でかせぎ) と言って、一家の働き手が冬のあいだ、他のあたたかい地方に働きに出る場合もあります。
雪国では、冬のあいだは、家につもった雪を、雪かきで下ろさないといけません。そのため、おろしやすくするためや、雪の荷重が一点にかたよらないようにするため、屋根はななめについています。また、家の柱は雪の重みにたえられるように、太くつくられます。窓は二重窓(にじゅうまど)です。
古いよび方で、富山県のあたりを古くは越中(えっちゅう)と言い、新潟県のあたりを越後(えちご)と言います。
むかし、富山の{{Ruby|商人|しょうにん}}は、日本中に薬をで有名でした。「越中富山の薬売り」として、言葉が伝えられています。
=== 山梨県 ===
[[File:KofuBonchi.jpg|thumb|260px|{{Ruby|甲府|こうふ}}の{{Ruby|街並|まちな}}み。平地にたてられた街が山にかこまれている。]]
*昔の名前({{Ruby|旧国名|きゅうこくめい}}):{{Ruby|甲斐|かい}}</br>
*県庁所在地:{{big|'''{{Ruby|甲府|こうふ}}市'''}}
----
県のまわりをいくつかの山にかこまれている、海のない{{Ruby|内陸県|ないりくけん}}です。
*'''自然'''
県{{Ruby|中央部|ちゅうおうぶ}}の '''{{Ruby|甲府盆地|こうふぼんち}}''' では、夏はとてもあつく、冬は寒いです。</br>
甲府盆地のような{{Ruby|盆地|ぼんち}}は、まわりが山で囲まれているので、空気がたまったままとなり、気温が変わりづらいのです。</br>
また、盆地は{{Ruby|最低|さいてい}}気温と{{Ruby|最高|さいこう}}気温の差が大きくなります。
甲府盆地では、ぶどうや{{Ruby|桃|もも}}の{{Ruby|栽培|さいばい}}がさかんです。</br>
これもまた、盆地は雨が少なく、日当たりがよいのが理由です。
*'''まわりの山地・山脈'''
長野県との{{Ruby|境目|さかいめ}}には{{Ruby|明石山脈|あかしさんみゃく}}が、南西部の静岡県との境目には、{{Ruby|身延山地|みのぶさんち}}がそびえています。
また、関東地方の東京都や埼玉県との境目のちかくには、{{Ruby|関東山地|かんとうさんち}}がそびえています。
東京都に接しており、鉄道や道路が東京とつながっているので、山梨県は{{Ruby|首都圏|しゅとけん}}(東京とつながりのふかい地域)にふくまれます。
{{clear}}
=== 愛知県 ===
*旧国名:西部→{{Ruby|尾張|おわり}}・東部→{{Ruby|三河|みかわ}}</br>
*県庁所在地:{{big|'''{{Ruby|名古屋|なごや}}市'''}}
----
西部に{{Ruby|濃尾平野|のうびへいや}}が、南部には{{Ruby|岡崎平野|おかざきへいや}}という平野がある。
*'''工業'''
[[画像:Nagoya Port 02.jpg|thumb|230px|名古屋{{Ruby|港|こう}}のようす]]
愛知県は、'''{{Ruby|中京工業地帯|ちゅうきょうこうぎょうちたい}}'''の中心地である。特に、トヨタ自動車{{Ruby|株式会社|かぶしきがいしゃ}}の本社がある{{Ruby|豊田|とよた}}市を中心に 自動車工業が さかん。豊田市は、むかしは「{{Ruby|挙母|ころも}}市」という名前だったが、1959年にトヨタにちなんで挙母市の市名を「豊田市」に変えた。
(トヨタ・・・豊田市に本社をおく、自動車を作る会社。2022年時点で、世界でいちばん自動車をはん売している。)
愛知県では、現在では自動車工業を中心にした{{Ruby|機械|きかい}}工業がさかんだが、古くは焼き物や{{Ruby|繊維|せんい}}産業がさかんであった。
伝統工芸では{{Ruby|瀬戸|せと}}市の '''{{Ruby|瀬戸焼|せとやき}}''' という焼き物も有名である。</br>
愛知県では{{Ruby|窯業|ようぎょう}}(焼き物づくり)でつくられた{{Ruby|製品|せいひん}}の出荷額が日本一。(2014年時点)
ほかには、東海市では{{Ruby|鉄鋼業|てっこうぎょう}}(鉄を加工する産業)が、{{Ruby|一宮|いちのみや}}市では、せんい工業がさかん。
*'''農業'''
[[画像:Mikawa_Bay_Aichi_Japan_SRTM.jpg|thumb|260px|{{Ruby|渥美半島|あつみはんとう}}(右)、{{Ruby|知多半島|ちたはんとう}}(左)、{{Ruby|三河湾|みかわわん}}(間の海)]]
農業では、{{Ruby|渥美半島|あつみはんとう}}の{{Ruby|電照|でんしょう}} ぎくの栽培が有名。温室メロンも有名である。</br>
南東部にある渥美半島には{{Ruby|豊川用水|とよかわようすい}}、西部にある{{Ruby|知多半島|ちたはんとう}}には{{Ruby|愛知用水|あいちようすい}}という水路が引かれている。
*'''その他'''
県庁所在地の名古屋市は、中部地方で一番の人口をほこる東海地方の中心都市。</br>
ちなみに、{{Ruby|織田信長|おだのぶなが}}・{{Ruby|豊臣秀吉|とよとみひでよし}}・{{Ruby|徳川家康|とくがわいえやす}}の三人の{{Ruby|戦国武将|せんごくぶしょう}}は全員、げんざいの愛知県で生まれた。とくに、徳川家康はぶんれつしていた日本を統一し、{{Ruby|江戸|えど}}時代には日本全国を{{Ruby|治|おさ}}めた。
{| class="wikitable"
|-
![[File:Found MUJI Setoyaki (6910176253).jpg|x110px]]
![[File:電照菊 2011-05B.JPG|x110px]]
![[File:View from the Observation Room of Higashiyama Sky Tower (12), Tashiro-cho Chikusa Ward Nagoya 2021.jpg|x110px]]
![[File:Tokugawa Ieyasu2.JPG|x110px]]
|-
| style="font-size:smaller;" |{{Ruby|瀬戸焼|せとやき}}
| style="font-size:smaller;" |{{Ruby|電照|でんしょう}}ぎく
| style="font-size:smaller;" |名古屋市の{{Ruby|夜景|やけい}}
| style="font-size:smaller;" |{{Ruby|徳川家康|とくがわいえやす}}
|}
{{clear}}
=== 岐阜県 ===
*旧国名:北部→{{Ruby|飛騨|ひだ}}・南部→{{Ruby|美濃|みの}}</br>
*県庁所在地:{{big|'''{{Ruby|岐阜|ぎふ}}市'''}}
----
*'''自然'''
[[ファイル:Ogi Shirakawa06n3200.jpg|thumb|280px|right|合掌造り(白川郷)]]
海に面さない、内陸県である。
県南部の{{Ruby|美濃|みの}}地方は、平野や高原があるが、県北部の{{Ruby|飛騨|ひだ}}地方は高地や山地の場所が多い。
県の北西部に'''{{Ruby|飛騨山脈|ひださんみゃく}}'''があり、長野県との境い目になっている。
また、岐阜県は夏と冬、昼と夜の気温の{{Ruby|差|さ}}が大きい。(かつて、夏には40℃を超える気温を<ref>{{cite news|url=https://weathernews.jp/s/topics/201808/080195/ |title=岐阜県で今年三度目の41℃台 |publisher=ウェザーニュース|accessdate=2023-2-7}}</ref>、冬には-25℃を下回る気温を{{Ruby|観測|かんそく}}したこともあった。)
南西部に{{Ruby|濃尾平野|のうびへいや}}という平地がある。濃尾平野の岐阜県のほうには、{{Ruby|木曽川|きそがわ}}・{{Ruby|長良川|ながらがわ}}・{{Ruby|揖斐川|いびがわ}}が流れている。この三つの川を、'''{{Ruby|木曽三川|きそさんせん}}'''という。昔の木曽三川はよく{{Ruby|氾濫|はんらん}}したので、川の周辺には、まわりを{{Ruby|堤防|ていぼう}}で囲った、'''{{Ruby|輪中|わじゅう}}'''という集落がある。
*'''文化'''
岐阜県では{{Ruby|製造業|せいぞうぎょう}}(ものづくり)がさかん。とくに、南部の{{Ruby|多治見|たじみ}}市などの{{Ruby|陶磁器|とうじき}}づくりが有名である。
{{Ruby|観光地|かんこうち}}としては、{{Ruby|下呂|げろ}}市にある{{Ruby|下呂温泉|げろおんせん}}が、有名な温泉地として日本中から人気をあつめている。
また、飛騨地方にある{{Ruby|白川郷|しらかわごう}}の'''{{Ruby|合掌造り|がっしょうづくり}}'''の家の集落が世界文化{{Ruby|遺産|いさん}}である。
{{clear}}
=== 長野県 ===
*旧国名:{{Ruby|信濃|しなの}}</br>
*県庁所在地:{{big|'''{{Ruby|長野|ながの}}市'''}}
----
*'''文化'''
[[file:Mikasa-Dori2.jpg|thumb|280px|right|{{Ruby|軽井沢|かるいざわ}}のカラマツ{{Ruby|並木|なみき}}]]
江戸時代から、長野県は東日本と西日本をつなぐ場所としてさかえた。</br>
明治時代に入ってからは、東京や名古屋・大阪から近いことを生かし、{{Ruby|軽井沢|かるいざわ}}を中心にリゾート地として人気を集めている。
*'''地形'''
[[ファイル:Geofeatures map of Chubu Japan ja.svg|thumb|280px|right|長野県{{Ruby|周辺|しゅうへん}}の地形をまとめた図。山脈の{{Ruby|位置|いち}}を{{Ruby|確認|かくにん}}してみよう。]]
県の80%が山である。{{Ruby|内陸県|ないりくけん}}であり、まわりでは8つの県に{{Ruby|接|せっ}}している。
{{Ruby|飛騨山脈|ひださんみゃく}}・{{Ruby|木曽山脈|きそさんみゃく}}・{{Ruby|明石山脈|あかしさんみゃく}}の山々からなる'''日本アルプス'''がある。</br>
北西部の飛騨山脈のことを「北アルプス」、木曽山脈を「中央アルプス」、赤石山脈を「南アルプス」とよぶこともある。
このような山が多い地形のため、山と山との間にある平地である、'''{{Ruby|盆地|ぼんち}}'''も多い。</br>
たとえば、長野盆地、{{Ruby|上田|うえだ}}盆地、{{Ruby|諏訪|すわ}}盆地、{{Ruby|伊那|いな}}盆地、{{Ruby|佐久|さく}}盆地などの盆地がある。
山梨県も盆地で有名なので、参考にしつつも、長野県と山梨県を混同しないように注意しよう。
*'''気候'''
長野県は、一年を通して雨が少なく、気温も低い、'''{{Ruby|中央高地式気候|ちゅうおうこうちしききこう}}'''である。
中でも、長野県北部の{{Ruby|気候|きこう}}は日本海{{Ruby|側|がわ}}の気候に近く、冬には雪も多い。南部は太平洋側の気候に近い。</br>
長野県の北どなりは{{Ruby|新潟|にいがた}}県であり、長野県の南どなりは静岡県や愛知県である、と聞けば、長野での気候の{{Ruby|地域差|ちいきさ}}(地域ごとの差)をイメージしやすいだろう。
*'''農業'''
長野県の盆地では、りんご・なし・ぶどうなど果物の{{Ruby|栽培|さいばい}}がさかん。すずしい気候がりんごなどの栽培に向いているのだ。
{{Ruby|八ヶ岳|やつがたけ}}のふもとなどの高地で'''、{{Ruby|高原野菜|こうげんやさい}}'''の栽培がさかん。(高原野菜:すずしい気候を生かし、売りに出す{{Ruby|時期|じき}}をずらした野菜)
*'''{{Ruby|林業|りんぎょう}}'''
山脈が多いので、林業がさかん。木曽山脈は'''{{Ruby|木曽|きそ}}ひのき'''の{{Ruby|産地|さんち}}として有名である。</br>
ちなみに、木曽ひのきは「{{Ruby|日本三大美林|にほんさんだいびりん}}」の一つとされている。
*'''工業'''
{{Ruby|諏訪|すわ}}市や{{Ruby|岡谷|おかや}}市で、カメラや時計やレンズ・{{Ruby|顕微鏡|けんびきょう}}などの{{Ruby|精密機械工業|せいみつきかいこうぎょう}}が、さかん。
{{clear}}
=== 静岡県 ===
*旧国名:{{Ruby|伊豆半島|いずはんとう}}→{{Ruby|伊豆|いず}}、東部→{{Ruby|駿河|するが}}、西部→{{Ruby|遠江|とおとうみ}}</br>
*県庁所在地:{{big|'''{{Ruby|静岡|しずおか}}市'''}}
----
*'''地形'''
[[ファイル:MtFuji FujiCity.jpg|thumb|300px|right|富士山。]]
[[ファイル:Shizuoka Prefecture 3D 2012.jpg|thumb|300px|right|静岡県の地形をあらわした図。出っぱっている部分が{{Ruby|伊豆半島|いずはんとう}}で、その西の海が{{Ruby|駿河湾|するがわん}}。]]
山梨県との{{Ruby|県境|けんざかい}}に、日本一高い山である'''{{Ruby|富士山|ふじさん}}'''がそびえている。
静岡県は山が多い。
県の北部には{{Ruby|明石山脈|あかしさんみゃく}}がそびえ、けわしい{{Ruby|山岳地帯|さんがくちたい}}となっている。</br>
南部の平地には、県庁所在地の静岡市や{{Ruby|浜松|はままつ}}市などの大きな都市がつくられている</br>
また、南部の'''{{Ruby|伊豆半島|いずはんとう}}'''がかこんでいる部分の海を'''{{Ruby|駿河湾|するがわん}}'''という。
*'''気候'''
県の北部の山が多い地域は、{{Ruby|中央高地式気候|ちゅうおうこうちしききこう}}に入っており、冬にはたくさんの雪がふるところもある。</br>
しかし、県の南部は{{Ruby|太平洋側気候|たいへいようがわきこう}}であり、{{Ruby|黒潮|くろしお}}の{{Ruby|影響|えいきょう}}もあって九州と同じくらいあたたかい。
夏から秋にかけては、'''台風'''の{{Ruby|影響|えいきょう}}も大きい。
*'''農業'''
静岡県は、{{Ruby|牧之原|まきのはら}}市などを中心に'''茶'''の{{Ruby|生産|せいさん}}が有名。
また、みかんやメロン、{{Ruby|石垣|いしがき}}イチゴの{{Ruby|栽培|さいばい}}も有名である。
*'''工業'''
'''{{Ruby|東海工業地域|とうかいこうぎょうちいき}}'''の一部である。{{Ruby|浜松|はままつ}}市では、オートバイや楽器の生産がさかん。
*'''水産業'''
[[file:Port of Yaizu 2020-04 ac (2).jpg|thumb|200px|right|{{Ruby|焼津漁港|やいずぎょこう}}]]
駿河湾{{Ruby|沿|ぞ}}いにある'''{{Ruby|焼津漁港|やいずぎょこう}}'''や{{Ruby|清水港|しみずこう}}は、カツオ・マグロが有名で、{{Ruby|水揚|みずあ}}げ{{Ruby|量|りょう}}も多い。たとえば2008年のデータ(農林水産省 水産物流通統計)では、マグロの水揚げは焼津港が全国一位である。
県西部にある{{Ruby|浜名湖|はまなこ}}では、うなぎの{{Ruby|養殖|ようしょく}}が有名である。
*'''文化'''
{{Ruby|弥生|やよい}}時代の{{Ruby|遺跡|いせき}}である{{Ruby|登呂遺跡|とろいせき}}は、静岡県にある。(六年生で習うので、今のうちにおぼえてしまおう。)</br>
他にも、{{Ruby|熱海|あたみ}}温泉が{{Ruby|観光地|かんこうち}}として有名で、静岡県全体では一年で1{{Ruby|億|おく}}人をこえる{{Ruby|観光客|かんこうきゃく}}がおとずれる。<ref>{{Cite web|url=https://toukei.pref.shizuoka.jp/kankouseisakuka/data/21-010/documents/h30kankoukouryunodoukou.pdf|title=H30観光交流客数の動向冊子(校正版)|accessdate=2023/2/7|publisher=静岡県文化・観光部観光交流局、観光政策課}}</ref>
{{clear}}
=== 新潟県 ===
*旧国名:本州→{{Ruby|越後|えちご}}、{{Ruby|佐渡島|さどがしま}}→{{Ruby|佐渡|さど}}</br>
*県庁所在地:{{big|'''{{Ruby|新潟|にいがた}}市'''}}
----
*'''地形'''
[[file:Hiroshige, Gold mine in Sado province, 1853.jpg|thumb|200px|right|江戸時代にえがかれた、{{Ruby|佐渡|さど}}の{{Ruby|金山|きんざん}}のようす。]]
福島県・群馬県との{{Ruby|県境|けんざかい}}に{{Ruby|越後山脈|えちごさんみゃく}}がそびえている。
また、長野県からは日本一長い川である'''{{Ruby|信濃川|しなのがわ}}'''が流れてくる。</br>
その信濃川のまわりには、米作りがさかんな'''{{Ruby|越後平野|えちごへいや}}'''が広がっている。
そのほか、日本海上に'''{{Ruby|佐渡島|さどがしま}}'''という島がある。この島は、かつては{{Ruby|金|きん}}の{{Ruby|産地|さんち}}として有名だった。(金がとれた{{Ruby|佐渡|さど}}の{{Ruby|金山|きんざん}}は、{{Ruby|世界遺産|せかいいさん}}の{{Ruby|候補|こうほ}}になっている。)
*'''気候'''
冬にはたくさんの雪がふる、{{Ruby|豪雪地帯|ごうせつちたい}}である。</br>
また、夏の気温は関東地方と同じくらい高い。
*'''農業'''
'''新潟の農業といえば、米作りである。'''越後平野では米作りがさかんにおこなわれており、そのこともあってか新潟県の米の{{Ruby|収穫量|しゅうかくりょう}}は日本一になっている(2021年時点)。</br>
新潟でつくられる米の{{Ruby|品種|ひんしゅ}}としては、'''コシヒカリ'''という品種がとくに有名。(コシヒカリの{{Ruby|収穫|しゅうかく}}がさかんな{{Ruby|魚沼|うおぬま}}市は、越後平野にはふくまれないので注意。)
*'''文化'''
伝統工芸として、{{Ruby|燕|つばめ}}市の{{Ruby|金属洋食器|きんぞくようしょっき}}、{{Ruby|三条|さんじょう}}市の{{Ruby|金物|かなもの}}、{{Ruby|小千谷|おぢや}}市の{{Ruby|織物|おりもの}}である 小千谷ちぢみ などがある。
=== 石川県 ===
[[ファイル:131109 Kenrokuen Kanazawa Ishikawa pref Japan01s3.jpg|thumb|兼六園(けんろくえん)]]
県の北部は、日本海につきでた半島で、能登半島(のと はんとう)である。
西部の海岸は、日本海に長く面しており、冬には北西からの季節風により、雪が多く、ふる。
伝統工芸では、{{big|輪島塗}}(わじまぬり)や九谷焼(くたにやき)や加賀友禅(かがゆうぜん)が、有名。
江戸時代の初期には、加賀藩(かがはん)の藩主(はんしゅ)の前田利家(まえだ としいえ)の領地として栄え、「加賀百万石」(かがひゃくまんごく)とも呼ばれた。
21世紀の現在、金沢平野で米作が、さかんである。
金沢は、江戸時代には加賀藩の城下町であった。戦争にも、その名残(なごり)が残っており、武家屋敷なども残っており、金沢は道が迷路(めいろ)のように複雑(ふくざつ)である。
金沢の道が迷路のようになっているのは、もし戦争がおきたときに、敵を迷わすためであった<ref>戦国時代や江戸時代では、飛行機も自動車も無いので、敵は歩いて攻める必要があった。</ref>。
金沢は、今では県庁所在地になっている。
石川県には兼六園(けんろくえん)があり、日本三名園(にほんさいめいえん)の一つである。
=== 富山県 ===
[[ファイル:Kurobe Dam survey 2.jpg|250px|thumb|黒部ダム]]
黒部川(くろべがわ)の流域(りゅういき)に、黒部ダムなどの多くのダムがある。また、水力発電所も多い。
周辺の山地などから河川が多く集まり、富山県は水が豊富である。
農業は稲作が中心。富山平野で稲作(いなさく)がさかん。砺波平野ではチューリップの栽培が、裏作(うらさく)などでさかん。
富山県の五箇山(ごかやま)の合掌造り集落が、岐阜県の白川郷の合掌造り集落とともに、世界文化遺産になっている。
=== 福井県 ===
日本海に面する。若狭湾(わかさわん)の海岸は、リアス式海岸である。
冬は北からの季節風により、雪が多い。
若狭湾の沿岸(えんがん)に、原子力発電所が多い。
{{clear}}
== 関東地方 ==
[[ファイル:Kanto plain.png|thumb|300px|関東平野のCG画像]]
[[ファイル:Geofeatures map of Kanto Japan ja.svg|thumb|300px|関東地方の地理的な特ちょうをまとめた地図。]]
関東地方の南東部には、{{big|'''関東平野'''}}(かんとうへいや)が広がっています。
また、火山灰がつもって風化した {{big|'''関東ローム'''}}(かんとうローム)という土地が広がっています。
積もった火山灰は、静岡県の富士山(ふじさん)や・神奈川の箱根山(はこねやま)・長野県の浅間山(あさまさん)や、群馬県の榛名山(はるなさん)などの火山灰がつもった物だと考えられています。
関東ロームの土は赤いので、赤土(あかつち)とも言われます。
=== 神奈川県 ===
県庁所在地:<ruby><rb>'''横浜'''</rb><rp>(</rp><rt>'''よこはま'''</rt><rp>)</rp></ruby>'''市'''
南西部に箱根山がある。西部は丹沢山地(たんざわさんち)。</br>
南部は相模湾(さがみわん)に面し、東部は東京湾(とうきょうわん)に面する。
東京湾沿岸は、'''京浜工業地帯(けいひんこうぎょうちたい)'''の一部で、東京湾沿岸を中心に工業化がさかん。
県庁所在地の横浜にある横浜港(よこはまこう)は、<ruby><rb>貿易港</rb><rp>(</rp><rt>ぼうえきこう</rt><rp>)</rp></ruby>(貿易がさかんな港)として有名。明治時代から貿易港としてすでにさかえており、横浜の周辺には、おおくの洋風の建物や、中華街(ちゅうかがい)がある。
鎌倉時代に、鎌倉幕府(かまくらばくふ)が、現在の神奈川県の鎌倉市にあった。
=== 東京都 ===
県庁所在地:<ruby><rb>'''新宿'''</rb><rp>(</rp><rt>'''しんじゅく'''</rt><rp>)</rp></ruby>'''区'''
'''日本の首都'''で、日本で一番人口が多い。</br>
日本の経済や政治は、東京が中心になって回っている。
東部は、関東ロームにおおわれた武蔵野台地(むさしのだいち)が広がっている。また、'''東京湾'''に面している。
日本最南端の沖ノ鳥島(おきのとりしま)や 日本最東端の南鳥島(みなみとりしま)も東京都。
=== 千葉県 ===
県庁所在地:<ruby><rb>'''千葉'''</rb><rp>(</rp><rt>'''ちば'''</rt><rp>)</rp></ruby>'''市'''
'''房総半島(ぼうそうはんとう)'''が、県の大部分である。
近郊農業がさかん。
ラッカセイは千葉の特産品であり、2022年現在日本一の出荷量である。
カブ・さといも・ほうれんそう・ネギなどの栽培がさかん。
京葉工業地域(けいようこうぎょうちいき)の一部。
石油化学工業(せきゆかがくこうぎょう)や鉄鋼業(てっこうぎょう)など、重化学工業がさかんなのが、京葉工業地域の特ちょうである。
県東部の銚子港(ちょうしこう)は、漁港として有名。茨城県との県ざかいに利根川(とねがわ)が流れる。
野田(のだ)は、しょうゆの産地として有名。
=== 埼玉県 ===
県庁所在地:'''さいたま市'''
南東部は東京に近く、交通機関も発達しており工業化もしているため、都心への通勤のためのベッドタウンとして有名。</br>
「ベッドタウン」とは、昼間は東京へ仕事に出かけており、夜中に家のある埼玉に帰ってきて寝る(ねる)ので、ベッドタウンと言う。
県の西部は秩父山地(ちちぶさんち)という山地であり、東部は関東平野の平地である。
内陸県であり、海に面してない。</br>
県全体の面積のうち、川や湖が占める割合が、日本一である。
伝統工芸では、さいたま市岩槻(いわつき)区(旧:岩槻市)の人形づくりが有名。
工業では、川口市に鋳物(いもの)工場が多い。鋳物(いもの)とは、溶けた鉄を固めてつくる製品のことである。</br>
東部は機械工業が発達している。
農業は近こう農業であり、ネギ、ほうれんそう、ブロッコリーなどの栽培が、さかん。
=== 群馬県 ===
県庁所在地:<ruby><rb>'''前橋'''</rb><rp>(</rp><rt>'''まえばし'''</rt><rp>)</rp></ruby>'''市'''
山地が多い県である。内陸県であり、海に面してない。'''浅間山'''というおおきな火山がある。
冬に、北西からの季節風である「からっかぜ(空っ風)」がふく。
農業では、西部の嬬恋村(つまごいむら)のキャベツづくりが有名。</br>
コンニャクの原料のコンニャクイモの産地としても、群馬県は有名である。
草津温泉(くさつおんせん)という温泉地があり、毎年たくさんの観光客がおとずれている。
=== 栃木県 ===
[[ファイル:NikkoYomeimon5005.jpg|thumb|300px|東照宮]]
県庁所在地:<ruby><rb>'''宇都宮'''</rb><rp>(</rp><rt>'''うつのみや'''</rt><rp>)</rp></ruby>'''市'''
内陸県であり、海に面してない。
日光市にある日光東照宮(にっこう とうしょうぐう)は世界遺産になっている。
栃木県は、「とちおとめ」といういちごの産地で、栃木県は日本で一番いちごの生産量が多い。(2022年現在)
=== 茨城県 ===
県庁所在地:<ruby><rb>'''水戸'''</rb><rp>(</rp><rt>'''みと'''</rt><rp>)</rp></ruby>'''市'''
太平洋に面している。
工業は、臨海部は鹿島臨海工業地域の中心地であり、臨海部は石油化学工業などが、さかん。</br>
大手の電機(でんき)メーカーの日立(ひたち)の創業地が、茨城県の日立(ひたち)市なので、関連の工場が多い。
農業は、近郊農業である。はくさい、ごぼう、ピーマン、レンコン、レタスなどの生産がさかん。
水戸は江戸時代は、水戸藩(はん)の城下町であった。その水戸市では、水戸納豆(みとなっとう)の生産がさかんに行われている。
千葉県との県ざかいに、'''利根川(とねがわ)'''が流れる。
'''筑波研究学園都市(つくば けんきゅう がくえんとし)'''に、国の科学系の研究所が多くある。国土地理院(こくどちりいん)・産業技術総合研究所(さんぎょうぎじゅつそうごうけんきゅうじょ)の筑波センター・筑波宇宙センター・希少研究所など、多くの研究所がある。
== 東北地方 ==
東北では稲作もさかんです。山形県の庄内平野や、秋田県の秋田平野では、稲作がさかんです。
たとえば、米の品種の「あきたこまち」は、秋田県の品種です。「ササニシキ」は、宮城県の米の品種です。
山形では「おうとう」(さくらんぼ)の栽培もさかんです。
===青森県===
* 農業
青森県では、りんごの栽培がさかんです。りんごは、すずしい場所のほうが育ちやすいのです。
青森県では、漁業(ぎょぎょう)もさかんです。
また、陸奥湾(むつわん)では ほたて の養殖(ようしょく)がさかんです。
太平洋側にある三陸海岸(さんりく かいがん)の {{big|八戸}}港 (はちのへ こう)は、漁港(ぎょこう)として有名です。
青森県の八戸あたりから、宮城県の牡鹿半島(おじかはんとう)のあたりまでの海岸を、三陸海岸といいます。
三陸の沖合は、サンマやカツオやマグロの漁場として有名です。
* 三陸沖
三陸沖にある、青森県の八戸(はちのへ)、岩手県の宮古(みやこ)、宮城の気仙沼(けせんぬま)や女川(おながわ)は、漁港として有名です。
三陸海岸を地図で見ると、海岸線が、ギザギザした形になっています。いくつもの、多くの、入り江(いりえ)が、あります。このようなギザギザした海岸を {{big|リアス式海岸}} (リアスしき かいがん)と言います。
三陸海岸のここの入り江は深く、また入り江は陸で波がさえぎられ波がしずかなので、港になっているのです。
リアス式海岸は、漁港に向いていますが、このような地形の場所は地震のとき、大きな波にあいやすいのです。
このような地震のときに、大きな波がおしよせることを、 {{big|津波}} (つなみ)と、いいます。
入り江が、おくのほうへとせばまっていくので、波もせばまったぶん、高くなりやすいのです。この三陸の地方は、昔からたびたび、津波におそわれてきました。
住んでいる人は対策として、なるべく家を高いところにたてたり、防潮堤(ぼうちょうてい)をつくったり、避難場所(ひなんばしょ)に高い建物(たてもの)をつくったりしています。
* 北部太平洋漁場
日本の近海は、南西から流れてくる暖かい海流の日本海流(にほんかいりゅう)と、北東から流れてくる冷たい千島海流(ちしまかいりゅう)などが、日本近海であわさるので、さまざまな種類の魚があつまります。
日本海流は {{big|黒潮}}(くろしお) ともいいます。千島海流は {{big|親潮}}(おやしお) ともいいます。
東北の三陸海岸の沖は、親潮(おやしお)と黒潮(くろしお)のまざるばしょで、古くから、良い漁場として知られている。
三陸沖では、さんま・たら・かつお・まぐろ・いわし、などがよく取れる。千島列島から三陸沖までの漁場を、北部太平洋漁場(ほくぶ たいへよう ぎょじょう) という。
日本海流のような暖かい海水を運んでくる海流を、暖流(だんりゅう)と言います。日本近海の暖流には、日本海流の他にも対馬海流(つしまかいりゅう)があります。
対馬海流と千島海流は、発音が似ているのでまちがえないでください。千島海流のような、冷たい海水を運んでくる海流を寒流(かんりゅう)と言います。
=== 福島県 ===
県の東は、太平洋に面している。県中部には、南北に阿武隈高地(あぶくまこうち)と奥羽山脈(おううさんみゃく)があり、それによって中通り、会津、浜通りの3地方に分けられる。
浜通り(太平洋側)には、原子力発電所が多い。福島県の原子力発電所は、2011年の東北大地震および津波で、大きな被害を受けた。このため、2014年の時点では、産業に大きな影響が出ている。
※紹介内容が事故の前のものである場合、事故の後とは一致しない場合があるので、本節をよむときは注意してください。
中通り(県中央部)には猪苗代湖(いなわしろこ)を中心に、明治維新後は安積疎水(あさかそすい)が開かれ、土地の開拓が進んだ。
漁業がさかんである。農業では、ももの栽培がさかんである。
米の生産量も多い。
=== 宮城県 ===
太平洋に面し、海岸はリアス海岸である。海岸に漁港が多く、気仙沼(けせんぬま)・石巻(いしのまき)・女川(おながわ)が漁港として有名である。
漁港が多いことに関連して、周辺には水産加工業も多い。
県西部には、奥羽山脈が走る。
仙台平野で米作りがさかん。米の銘柄(めいがら)の「ひとめぼれ」の産地である。
伝統工芸で、こけし が有名。
=== 山形県 ===
日本海側に面し、東部に奥羽山脈(おうう さんみゃく)が、ある。
農業は、おうとう(さくらんぼ) の産地として有名。
最上川(もがみがわ)が流れる。最上川の下流域の日本海側にある庄内平野(しょうない へいや)では、米作りが、さかん。庄内平野の銘柄米(めいがらまい)の名前は「はえぬき」である。
工業は東北地方の中では、IC工場などのコンピュータ部品関連の工場が多く、シリコンロードの一部である。高速道路ぞいに工場が進出したのでシリコンロードと呼ばれる。ロード(road)とは、道路という意味。
畜産(ちくさん)では、米沢(よねざわ)市は、高級和牛の米沢牛(よねざわぎゅう)の産地でも有名。
=== 秋田県 ===
山形県の北にある県で、日本海に面する県。秋田県の東に、岩手県が、ある。
県中部には、出羽山脈(でわ さんみゃく)が、南北に走る。
県庁所在地(けんちょうしょざいち)は、'''秋田市'''(あきたし)である。
日本海側の半島が県中部にあるが、これは男鹿半島(おが はんとう)という。
林業がさかんで、秋田杉(あきたすぎ)で有名。
秋田平野で米作りがさかんであり、銘柄米(めいがらまい)の「'''あきたこまち'''」が有名である。
伝統行事の「'''なまはげ'''」が有名である。「なまはげ」の内容は、毎年年末の大みそかに、鬼の面をした男が、「泣く子はいねえがー」とか言いながら、家々をねり歩く。
=== 岩手県 ===
[[File:Nambu Tetsubin.jpg|right|thumb|南部鉄器(なんぶてっき)の鉄びん]]
太平洋側にあり、宮城県の北にあり、秋田県の東にある。
県庁所在地(けんちょうしょざいち)は、'''盛岡市'''(もりおかし)である。
三陸海岸はリアス海岸であり、また、三陸沖(さんりくおき)は良い漁場(ぎょじょう)である。
畜産業(ちくさんぎょう)も、さかんであり、肉牛(にくぎゅう)の飼育(しいく)や、乳牛の酪農(らくのう)が、さかん。酪農では、小岩井(こいわい)が有名。
伝統工芸に南部鉄器(なんぶてっき)がある。
夏には、北東の寒流の親潮(おやしお)から、冷たい季節風の'''やませ'''が、ふきつける。このため、冷害が起きることがある。
=== 青森県 ===
[[ファイル:Tohoku epco n1.jpg|300px|right|thumb|青森の ねぶたまつり]]
本州の最北端の県である。
北に半島が2つつきでており、東側が下北半島(しもきた はんとう)で、西側が津軽半島(つがる はんとう)である。
下北半島と津軽半島のあいだの湾は陸奥湾(むつわん)である。津軽半島と北海道のあいだの海峡が、津軽海峡(つがる かいきょう)である。
農業では、県西部の津軽平野で、りんごの栽培がさかん。
水産では、県の南東にある八戸港(はちのへ こう)が漁港として有名で、イワシ漁やイカ漁が有名である。陸奥湾(むつわん)では、ほたて の養殖がさかん。
伝統行事で,'''ねぶた祭'''(ねぶたまつり)がある。
下北半島の六ケ所村(ろっかしょむら)に、原子力関係の核処理(かくしょり)施設(しせつ)がある。
南西部の秋田県とのさかいに、白神山地(しらかみさんち)がある。白神山地はブナの原生林として有名で、世界遺産に登録されている。
{{clear}}
== 北海道 ==
[[ファイル:Hokkaidomap-jp.png|thumb|250px|北海道地図]]
土地の広さをいかした、農業がさかんです。ジャガイモなどが有名です。
米は、もともと熱帯地方の作物ですが、品種改良で、北海道でも栽培できるようになっています。
雪どけ水(ゆきどけみず)が大量にあるので、水田の水にはこまりません。
酪農(らくのう)がさかんです。
酪農とは牛などを飼って、乳を生産することです。
牛乳(ぎゅうにゅう)を生産したり、牛乳からバターやチーズなどの乳製品を生産しています。乳牛から得られた牛乳(ぎゅうにゅう)は、まず加熱(かねつ)されることで殺菌(さっきん)されます。そのあと、冷やされた牛乳が飲用(いんよう)の牛乳(ぎゅうにゅう)に、なります。飲用の牛乳だけでなく、バターやチーズなどをつくるための牛乳も加熱殺菌されています。
東京などの首都圏からは遠いので、バターなどの乳製品に加工される割合が多いです。
[[ファイル:AinuGroup.JPG|thumb|250px|アイヌ]]
北海道には、昔は アイヌ とよばれる先住民の人々が住んでいました。
北海道の道庁(どうちょう)は、札幌市(さっぽろし)にあります。
* サイロ
<gallery widths="200px" heights="180px" perrow="3">
ファイル:Rokkosan pasture11ps1920.jpg|日本のサイロ
ファイル:Wooden silo.JPG|木製として日本最古のサイロ
</gallery>
乳牛はエサとして、牧草を食べます。
冬は牧草が枯れたり雪に埋もれてしまうので、そのままでは、冬のエサが無くなってしまいます。
なので酪農家は、夏のうちに、牧草を刈り取り、 {{big|サイロ}} という建物(たてもの)に、たくわえます。
北海道では、てんさい(甜菜)の栽培もさかんです。甜菜(てんさい)とは、根をしぼった煮汁から砂糖がとれる植物です。サトウダイコンとも呼ばれますが、じつはテンサイは大根ではないです。寒いところでもよく育つので、北海道ではテンサイの栽培もさかんです。十勝平野を中心にテンサイは栽培されています。
2008年現在、じゃがいも・あずき・小麦の生産量が日本一。
県中南部の十勝平野(とかちへいや)で、じゃがいも・あずき・てんさい・小麦などの生産がさかん。
漁業もさかんです。
北海道の近くの海での漁業は 北洋漁業 (ほくよう ぎょぎょう) といいます。{{big|釧路}}(くしろ)や稚内(わっかない)などが漁港(ぎょこう)として有名です。
近海のオホーツク海やベーリング海では、さけ・たら・ます・かになどがとれます。
[[File:Northern-Territories-of-Japan-Map-日本の北方領土の地図.png|300px|thumb|歯舞群島、色丹島、国後島、択捉島 <br />1. 色丹村、2.泊村、3. 留夜別村、4.留別村、5.紗那村、6. 蘂取村]]
* 北方領土(ほっぽうりょうど)
択捉(えとろふ)・国後(くなしり)・歯舞(はぼまい)・色丹(しこたん)の4島は、ロシアに領有されている。
* 工業
室蘭市(むろらんし)で鉄鋼業、苫小牧(とまこまい)の製紙・パルプ工業が有名です。
==脚注==
<references/>
{{Stub}}
jw61vstq7ju6m8v56vffmn3fii70vkj
Go
0
28505
263395
262624
2024-11-12T21:47:19Z
Ef3
694
/* Go 1.23 */ "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。
263395
wikitext
text/x-wiki
{{Pathnav|メインページ|工学|情報技術|プログラミング}}
Goは、Googleが開発したオープンソースの汎用プログラミング言語であり、システムプログラミングを主な目的として設計されています<ref name="Introduction">{{cite book
| url = https://go.dev/ref/spec#Introduction
| title = The Go Programming Language Specification Language version go1.23 (June 13, 2024)
| chapter = Introduction¶
| date = June 13, 2024
| publisher = The Go website
}}</ref>。
静的型付け言語であるため、高速で効率的なプログラムを作成することができ、また、並行処理を簡単に実装できるため、高い並行性を持ちます。
Goの文法はシンプルで読みやすく、効率的にコーディングできるため、開発者は迅速に新しいコードを書くことができます。
Goは自動的にメモリを管理するため、メモリ管理に関する手間を減らすことができます。
さらに、Windows、macOS、Linuxなど、多くのプラットフォームで動作し、標準ライブラリが豊富であり、多くの外部ライブラリが存在するため、広範な用途に対応することができます。
Goのコミュニティは活発であり、多くの開発者が参加しているため、質問や問題解決のためのリソースが豊富であり、新しい機能やライブラリが定期的にリリースされています。
この教科書では、初めてGoを学ぶ人から、より高度なトピックに興味のある人まで、幅広い読者を対象に、Goの基本から応用までを網羅的に解説します。
__TOC__
== 目次 ==
;チュートリアル篇
: [[/環境構築|環境構築]]
: [[/実行の方法|実行の方法]] {{---}} [[Go/実行の方法#Hello, World|Hello, World]]
: [[/文法の概要|文法の概要]]
: [[/変数|変数と型変換]]
: [[/算術演算と数学関数|算術演算と数学関数]]
: [[/条件分岐と繰り返し|条件分岐と繰り返し]] {{---}} if, switch, select, for, break, continue, return
: [[/関数|関数]]
: [[/メソッドとインターフェース|メソッドとインターフェース]]
: [[/ジェネリクス|ジェネリクス]]
: [[/再帰的関数呼出し|再帰的関数呼出し]]
: [[/メソッドチェイン|メソッドチェイン]]
: [[/defer,panicとrecover|defer, panicとrecover]]
: [[/並行処理|並行処理]]
: [[/配列とスライス|配列型とスライス型]]
: [[/マップ|マップ型]]
: [[/構造体|構造体型と構造体スライス]]
: [[/Goのプログラムがどんなアセンブリにコンパイルされるか?|Goのプログラムがどんなアセンブリにコンパイルされるか?]] {{---}} go tool objdump
: [[/クロスコンパイル|クロスコンパイル]] {{---}} GOOS, GOARCH
: [[/cgoでGoのコードからCの関数を利用する|cgoでGoのコードからCの関数を利用する]] {{---}} cgo
: [[/Goのコードでgoのバージョンを調べる方法|Goのコードでgoのバージョンを調べる方法]]
: [[/HTTP|HTTP]]
: [[/ファイル入出力|ファイル入出力]]
: [[/コードギャラリー|コードギャラリー]]
;リファレンス篇
: [[/ソースコードの表現方法|ソースコードの表現方法]]
: [[/キーワードと宣言済み識別子|キーワードと宣言済み識別子]] {{---}} [[/キーワードと宣言済み識別子#キーワード|キーワード]]・[[/キーワードと宣言済み識別子#宣言済み識別子|宣言済み識別子]]([[/キーワードと宣言済み識別子#組込み型|組込み型]]・[[/キーワードと宣言済み識別子#組込み関数|組込み関数]])
: [[/字句的要素|字句的要素]]
: [[/定数と変数|定数と変数]] {{---}} [[/定数と変数#定数|定数]]([[/定数と変数#iota|iota]])・[[/定数と変数#変数|変数]]
: [[/型|型]]
: [[/型と値の特性|型と値の特性]]
: [[/ブロック・宣言とスコープ|ブロック・宣言とスコープ]] {{---}} [[/ブロック・宣言とスコープ#ブロック|ブロック]]・[[/ブロック・宣言とスコープ#宣言とスコープ|宣言とスコープ]]
: [[/式|式]] {{---}} [[/式#演算子|演算子]]
: [[/文|文]]
: [[/パッケージ|パッケージ]]
: [[/プログラムの初期化と実行|プログラムの初期化と実行]]
: [[/エラー|エラー]]
: [[/EBNF|EBNF]]
;[[/標準ライブラリー|標準ライブラリー篇]]
== バージョン間の変更点 ==
Go は、約半年ごとに新しいバージョンがリリースされます。バージョンが変わると、言語仕様に追加変更があったり、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられることがあり、稀に既存のプログラムに影響が出ることもあります。以下に、最新のバージョンから順に変更点を記載します。
=== Go 1.23 ===
Go 1.23が、2024年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.23
| title = Go 1.23 Release Notes - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.23
| title = Go 1.23 is released! - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref>。
Go 1.23のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]}}
; 言語の変更点:
:# "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。
:# ジェネリック型エイリアスのプレビューサポートが追加されました(GOEXPERIMENT=aliastypeparamsを有効にする必要があります)。
; 新しい標準パッケージ:
:# uniqueパッケージ:値の正規化(インターン化やハッシュコンス化)を行うための機能を提供します。
:# iterパッケージ:ユーザー定義のイテレータ機能を提供します。
:# structsパッケージ:構造体のメモリレイアウトなどのプロパティを制御する機能を提供します。
; パフォーマンスの改善点:
:# Profile Guided Optimization (PGO)のビルドオーバーヘッドが大幅に削減されました。以前は100%以上の増加が見られましたが、今回のリリースでは一桁台のパーセンテージまで改善されています。
:# コンパイラがローカル変数のスタックフレームスロットを最適化し、関数内の異なる領域で重複して使用できるようになり、スタック使用量が削減されました。
; テレメトリーと開発者ツール:
:# Goツールチェーンが使用状況と問題点の統計情報を収集できるテレメトリー機能が追加されました(オプトイン方式)。
:# go vetコマンドにstdversionアナライザーが追加され、使用しているGoバージョンと互換性のないシンボルの参照を検出できるようになりました。
; プラットフォームサポートの変更:
:# macOSは11 (Big Sur)以降が必要になりました。
:# Linux kernelは2.6.32以降が必要です(Go 1.24では3.2以降になる予定)。
:# OpenBSDの64-bit RISC-Vサポートが試験的に追加されました。
また、time.TimerとTime.Tickerの実装が大幅に改善され、未使用のタイマーがガベージコレクションの対象となるようになりました。セキュリティ面では、TLSクライアントがEncrypted Client Helloをサポートし、3DESの暗号スイートがデフォルトリストから削除されるなどの改善が行われています。
=== Go 1.22 ===
Go 1.22が、2024年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.22
| title = Go 1.22 Release Notes - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.22
| title = Go 1.21 is released! - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref>。
Go 1.22のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.22 Go 1.22 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.22 Go 1.22 is released! The Go Blog]}}
; 言語の変更点:
# 長らく問題視されてきた「for」ループの落とし穴が解決されました。Go 1.22以降、ループ変数がイテレーション間で意図せず共有される問題が解消されました。
# 整数の範囲に対する<code>range</code>のサポートが追加されました。これにより、整数をカウントダウンするプログラムなどで簡潔に記述できるようになります。
; パフォーマンスの改善点:
# Goランタイムのメモリ最適化により、CPUパフォーマンスが1-3%向上し、ほとんどのGoプログラムのメモリオーバーヘッドが約1%削減されました。
# Go 1.21で導入されたプロファイル誘導最適化(PGO)の機能が引き続き改善されています。PGOを有効にすることで、より多くのインターフェースメソッド呼び出しの静的ディスパッチが可能になり、ほとんどのプログラムで2-14%の改善が見られます。
; 標準ライブラリの追加:
# 新しいmath/rand/v2パッケージが追加され、よりクリーンで一貫性のあるAPIが提供されます。
# net/http.ServeMuxのパターンがメソッドとワイルドカードを受け入れるようになりました。例えば、GET /task/{id}/というパターンはGETリクエストのみを受け入れ、{id}セグメントの値を取得できるようになりました。
また、database/sqlパッケージにはNull[T]型が追加され、nullableカラムをスキャンする方法が提供されます。slicesパッケージには複数のスライスを連結するConcat関数が追加されました。
=== Go 1.21 ===
Go 1.21が、2023年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.21
| title = Go 1.21 Release Notes - The Go Programming Language
| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.21
| title = Go 1.21 is released! - The Go Programming Language
5| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref>。
{{Main|[https://go.dev/doc/go1.21 Go 1.21 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.21 Go 1.21 is released! The Go Blog]}}
Go 1.21では、リリースの番号付けにわずかな変更が導入されました。Go 1.Nは、過去にGo言語のバージョン全体とリリースファミリー、およびそのファミリー内の最初のリリースを指すために使用されていました。しかし、Go 1.21から、最初のリリースはGo 1.N.0となりました。今日、Go 1.21言語とその初期実装であるGo 1.21.0リリースが公開されています。これらのノートは「Go 1.21」と呼ばれますが、go versionなどのツールは「go1.21.0」と報告されます(Go 1.21.1にアップグレードするまで)。
; ツールの改善点:
* Profile Guided Optimization(PGO)機能が一般利用可能になりました。<code>default.pgo</code>という名前のファイルがメインパッケージのディレクトリにある場合、<code>go</code>コマンドはそれを使用してPGOビルドを有効にします。
* <code>go</code>ツールは今後の言語の後方互換性と前方互換性をサポートします。
; 言語の変更点:
* 新しい組み込み関数 <code>min</code>、<code>max</code>、<code>clear</code> が追加されました。
* ジェネリック関数の型推論がいくつか改善され、仕様書の型推論の説明が拡張されました。
* Goプログラミングの最も一般的な落とし穴の1つに取り組む予定で、そのプレビューがGo 1.21に含まれています。これは環境変数を使用してコードで有効にできます。詳細はLoopvarExperiment wikiページを参照してください。
;標準ライブラリの追加点:
* 構造化ログのための新しいlog/slogパッケージが追加されました。
* 任意の要素型のスライスに対する共通操作のための新しいslicesパッケージが追加されました。これには、一般的により高速で使いやすいソート関数も含まれています。
* 任意のキーまたは要素型のマップに対する共通操作のための新しいmapsパッケージが追加されました。
* 順序付けられた値を比較するための新しいユーティリティを提供するcmpパッケージが追加されました。
; 性能の改善点:
* PGOを有効にした際のパフォーマンス向上に加えて、以下のような改善があります。
* Goコンパイラ自体がPGOを有効にして再ビルドされ、ホストアーキテクチャによってはプログラムのビルドが2〜4%高速化されました。
* ガベージコレクターの調整により、一部のアプリケーションではテールレイテンシーが最大40%削減される場合があります。
* runtime/traceでトレースを収集する際のCPUコストが、amd64およびarm64で大幅に低減されました。
; 新しいWASIポート:
* Go 1.21には、WebAssembly System Interface(WASI)の実験的なポートが追加されました(GOOS=wasip1、GOARCH=wasm)。
* より一般的なWebAssembly(Wasm)コードの記述を容易にするために、コンパイラはWasmホストからの関数のインポートのための新しい指令 <code>go:wasmimport</code> をサポートしています。
=== Go 1.20 ===
Go 1.20が、2023年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.20
| title = Go 1.20 Release Notes - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.20
| title = Go 1.20 is released! - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref>。
Go 1.20では、スライスから配列への変換が可能になりました。また、unsafeパッケージには新しい関数が追加され、スライスや文字列の値を構築および分解する完全な機能が提供されるようになりました。また、新しい仕様により、構造体のフィールドと配列の要素の比較が最初の不一致で停止するようになり、厳密に比較できない型引数を持つ型パラメータを使用して、比較制約に制限された型をインスタンス化することが可能になりました。
=== Go 1.19 ===
Go 1.19が、2022年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.19
| title = Go 1.19 Release Notes - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.19
| title = Go 1.19 is released! - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref>。
Go 1.19では、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられています。言語にはわずかな修正があり、既存のプログラムには影響がないです。メモリモデルも更新され、C、C ++、Java、JavaScript、Rust、Swiftなどのメモリモデルに合わせられた。Go 1.19では、sync/atomicパッケージに新しい型が導入され、atomic.Int64やatomic.Pointer[T]などのatomic値をより簡単に使用できるようになっています。Go 1の互換性を維持しており、ほとんどのGoプログラムは引き続き従前どおりにコンパイルおよび実行されることが予想されます。
=== Go 1.18 ===
Go 1.18が、2022年3月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.18
| title = Go 1.18 Release Notes - The Go Programming Language
| date = 2022/03/10
| accessdate = 2022-08-04
}}</ref>。
Go 1.18 には、型パラメータプロポーザル<ref>{{cite book
| url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
| title=Type Parameters Proposal
| accessdate=2021-09-30
}}</ref>で説明されたジェネリック機能の実装が含まれています。
以下は、最も目に付く変更点のリストです。
* 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ [[/関数#ジェネリック関数]]
* パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。
* 新しいトークン ~ が演算子および区切子(punctuation)に追加されました。⇒ [[/字句的要素#演算子と区切子]]
* インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ [[/型#インターフェース型]]
* 新しい事前宣言された識別子<code>any</code>は空のインターフェースの別名です。これは <code>interface{} </code>の代わりに使用することができます。
* 新しい宣言済み識別子 <code>comparable</code> は <code>==</code> や <code>!=</code> を使って比較できる全ての型の集合を表すインターフェースです.
ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。
;golang.org/x/exp/constraints
:<code>constraints.Ordered</code>のようなジェネリックコードに便利な制約です。
;golang.org/x/exp/slices
:任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。
;golang.org/x/exp/maps
:任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。
----
Go 1.18は、言語、ツールチェーン、ランタイム、ライブラリに変更があり、互換性が保たれている。最大の変更点は、ジェネリックスの導入である。ジェネリックスはバックワード互換性があるが、実際に多くの人が書き、使用して初めて本番環境で十分にテストされる。ジェネリックスの使用は推奨されるが、本番環境で使用する場合は注意が必要である。ジェネリックスにはいくつかの制限があるが、これらは将来的に改善される可能性がある。これらの変更により、Goエコシステム全体に影響があり、完全なサポートには時間がかかるだろう。
=== Go 1.17 ===
Go 1.17が、2021年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.17
| title = Go 1.17 Release Notes - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.17
| title = Go 1.17 is released! - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.17は、ツールチェーン、ランタイム、およびライブラリの実装の変更が中心で、ほとんどの変更は互換性が維持されています。言語自体には3つの小さな強化があり、スライスから配列ポインタへの変換、unsafe.Add、unsafe.Sliceが追加されました。このうち、スライスから配列ポインタへの変換が実行時にpanicを引き起こす場合があるため、タイプ変換が実行時にpanicを引き起こす可能性があることを考慮する必要があります。新しいプログラムを書く場合も、以前と同様に、unsafe.Pointerの安全ルールに従う必要があります。
=== Go 1.16 ===
Go 1.16が、2021年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.16
| title = Go 1.16 Release Notes - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.16
| title = Go 1.16 is released! - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.16では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
=== Go 1.15 ===
Go 1.15が、2020年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.15
| title = Go 1.15 Release Notes - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.15
| title = Go 1.15 is released! - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref>。
Go 1.15では、リンカーの大幅な改良、高いコア数での小規模オブジェクトの割り当ての改善、X.509 CommonNameの非推奨化、そして新しい埋め込みtzdataパッケージの追加が含まれています。
=== Go 1.14 ===
Go 1.14が、2020年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.14
| title = Go 1.14 Release Notes - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.14
| title = Go 1.14 is released! - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.14では、オーバーラップするインターフェースの提案により、埋め込まれたインターフェースで同じ名前とシグネチャを持つメソッドを許可するようになりました。しかし、インターフェース内で宣言されたメソッドは以前と同様にユニークである必要があります。
=== Go 1.13 ===
Go 1.13が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.13
| title = Go 1.13 Release Notes - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.13
| title = Go 1.13 is released! - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref>。
Go 1.13では、数字リテラルの接頭辞が変更され、バイナリ整数、8進数整数、16進数浮動小数点数、虚数リテラル、数字区切りが使用できるようになりました。さらに、符号付きシフトカウントの制限が撤廃され、制限がなくなりました。これらの変更は、コンパイラの変更によって実現されました。Go 1.13を使用するには、go.modファイルで言語バージョンを指定する必要があります。
=== Go 1.12 ===
Go 1.12が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.12
| title = Go 1.12 Release Notes - The Go Programming Language
| date = 2019/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.12
| title = Go 1.12 is released! - The Go Programming Language
| date = 2019/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.12では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
==脚註 ==
<references />
== 参考文献 ==
*{{cite book
| url = https://go.dev/ref/spec
| title = The Go Programming Language Specification
| date = JJune 13, 2024
| publisher = The Go website
}}
== 外部リンク ==
{{Wikipedia|Go (プログラミング言語)|Go}}
{{Wikiversity|Topic:Go|Go}}
* [https://go.dev/ The Go Programming Language] - 公式サイト
* [https://go.dev/play/ The Go Playground]
{{DEFAULTSORT:GO}}
[[Category:Go|*]]
[[Category:プログラミング言語]]
{{NDC|007.64}}
huccbbew84474qkr8qj3by8ax1tx38c
263396
263395
2024-11-12T21:55:32Z
Ef3
694
/* Go 1.22 */ コード例を追加
263396
wikitext
text/x-wiki
{{Pathnav|メインページ|工学|情報技術|プログラミング}}
Goは、Googleが開発したオープンソースの汎用プログラミング言語であり、システムプログラミングを主な目的として設計されています<ref name="Introduction">{{cite book
| url = https://go.dev/ref/spec#Introduction
| title = The Go Programming Language Specification Language version go1.23 (June 13, 2024)
| chapter = Introduction¶
| date = June 13, 2024
| publisher = The Go website
}}</ref>。
静的型付け言語であるため、高速で効率的なプログラムを作成することができ、また、並行処理を簡単に実装できるため、高い並行性を持ちます。
Goの文法はシンプルで読みやすく、効率的にコーディングできるため、開発者は迅速に新しいコードを書くことができます。
Goは自動的にメモリを管理するため、メモリ管理に関する手間を減らすことができます。
さらに、Windows、macOS、Linuxなど、多くのプラットフォームで動作し、標準ライブラリが豊富であり、多くの外部ライブラリが存在するため、広範な用途に対応することができます。
Goのコミュニティは活発であり、多くの開発者が参加しているため、質問や問題解決のためのリソースが豊富であり、新しい機能やライブラリが定期的にリリースされています。
この教科書では、初めてGoを学ぶ人から、より高度なトピックに興味のある人まで、幅広い読者を対象に、Goの基本から応用までを網羅的に解説します。
__TOC__
== 目次 ==
;チュートリアル篇
: [[/環境構築|環境構築]]
: [[/実行の方法|実行の方法]] {{---}} [[Go/実行の方法#Hello, World|Hello, World]]
: [[/文法の概要|文法の概要]]
: [[/変数|変数と型変換]]
: [[/算術演算と数学関数|算術演算と数学関数]]
: [[/条件分岐と繰り返し|条件分岐と繰り返し]] {{---}} if, switch, select, for, break, continue, return
: [[/関数|関数]]
: [[/メソッドとインターフェース|メソッドとインターフェース]]
: [[/ジェネリクス|ジェネリクス]]
: [[/再帰的関数呼出し|再帰的関数呼出し]]
: [[/メソッドチェイン|メソッドチェイン]]
: [[/defer,panicとrecover|defer, panicとrecover]]
: [[/並行処理|並行処理]]
: [[/配列とスライス|配列型とスライス型]]
: [[/マップ|マップ型]]
: [[/構造体|構造体型と構造体スライス]]
: [[/Goのプログラムがどんなアセンブリにコンパイルされるか?|Goのプログラムがどんなアセンブリにコンパイルされるか?]] {{---}} go tool objdump
: [[/クロスコンパイル|クロスコンパイル]] {{---}} GOOS, GOARCH
: [[/cgoでGoのコードからCの関数を利用する|cgoでGoのコードからCの関数を利用する]] {{---}} cgo
: [[/Goのコードでgoのバージョンを調べる方法|Goのコードでgoのバージョンを調べる方法]]
: [[/HTTP|HTTP]]
: [[/ファイル入出力|ファイル入出力]]
: [[/コードギャラリー|コードギャラリー]]
;リファレンス篇
: [[/ソースコードの表現方法|ソースコードの表現方法]]
: [[/キーワードと宣言済み識別子|キーワードと宣言済み識別子]] {{---}} [[/キーワードと宣言済み識別子#キーワード|キーワード]]・[[/キーワードと宣言済み識別子#宣言済み識別子|宣言済み識別子]]([[/キーワードと宣言済み識別子#組込み型|組込み型]]・[[/キーワードと宣言済み識別子#組込み関数|組込み関数]])
: [[/字句的要素|字句的要素]]
: [[/定数と変数|定数と変数]] {{---}} [[/定数と変数#定数|定数]]([[/定数と変数#iota|iota]])・[[/定数と変数#変数|変数]]
: [[/型|型]]
: [[/型と値の特性|型と値の特性]]
: [[/ブロック・宣言とスコープ|ブロック・宣言とスコープ]] {{---}} [[/ブロック・宣言とスコープ#ブロック|ブロック]]・[[/ブロック・宣言とスコープ#宣言とスコープ|宣言とスコープ]]
: [[/式|式]] {{---}} [[/式#演算子|演算子]]
: [[/文|文]]
: [[/パッケージ|パッケージ]]
: [[/プログラムの初期化と実行|プログラムの初期化と実行]]
: [[/エラー|エラー]]
: [[/EBNF|EBNF]]
;[[/標準ライブラリー|標準ライブラリー篇]]
== バージョン間の変更点 ==
Go は、約半年ごとに新しいバージョンがリリースされます。バージョンが変わると、言語仕様に追加変更があったり、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられることがあり、稀に既存のプログラムに影響が出ることもあります。以下に、最新のバージョンから順に変更点を記載します。
=== Go 1.23 ===
Go 1.23が、2024年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.23
| title = Go 1.23 Release Notes - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.23
| title = Go 1.23 is released! - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref>。
Go 1.23のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]}}
; 言語の変更点:
:# "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。
:# ジェネリック型エイリアスのプレビューサポートが追加されました(GOEXPERIMENT=aliastypeparamsを有効にする必要があります)。
; 新しい標準パッケージ:
:# uniqueパッケージ:値の正規化(インターン化やハッシュコンス化)を行うための機能を提供します。
:# iterパッケージ:ユーザー定義のイテレータ機能を提供します。
:# structsパッケージ:構造体のメモリレイアウトなどのプロパティを制御する機能を提供します。
; パフォーマンスの改善点:
:# Profile Guided Optimization (PGO)のビルドオーバーヘッドが大幅に削減されました。以前は100%以上の増加が見られましたが、今回のリリースでは一桁台のパーセンテージまで改善されています。
:# コンパイラがローカル変数のスタックフレームスロットを最適化し、関数内の異なる領域で重複して使用できるようになり、スタック使用量が削減されました。
; テレメトリーと開発者ツール:
:# Goツールチェーンが使用状況と問題点の統計情報を収集できるテレメトリー機能が追加されました(オプトイン方式)。
:# go vetコマンドにstdversionアナライザーが追加され、使用しているGoバージョンと互換性のないシンボルの参照を検出できるようになりました。
; プラットフォームサポートの変更:
:# macOSは11 (Big Sur)以降が必要になりました。
:# Linux kernelは2.6.32以降が必要です(Go 1.24では3.2以降になる予定)。
:# OpenBSDの64-bit RISC-Vサポートが試験的に追加されました。
また、time.TimerとTime.Tickerの実装が大幅に改善され、未使用のタイマーがガベージコレクションの対象となるようになりました。セキュリティ面では、TLSクライアントがEncrypted Client Helloをサポートし、3DESの暗号スイートがデフォルトリストから削除されるなどの改善が行われています。
=== Go 1.22 ===
Go 1.22が、2024年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.22
| title = Go 1.22 Release Notes - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.22
| title = Go 1.22 is released! - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref>。
Go 1.22のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.22 Go 1.22 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.22 Go 1.22 is released! The Go Blog]}}
; 言語の変更点:
:# 長らく問題視されてきた「for」ループの変数スコープが変更されました。以前は変数が一度だけ作成され、各イテレーションで更新されていましたが、Go 1.22以降は各イテレーションで新しい変数が作成されるようになり、意図しない共有の問題が解消されました。
:# 整数の範囲に対する<code>range</code>のサポートが追加されました。例えば、<code>for i := range 10</code>のような構文が可能になりました。
; パフォーマンスの改善点:
:# ガベージコレクションのメタデータを各ヒープオブジェクトの近くに配置するように最適化されました。これにより、CPUパフォーマンスが1-3%向上し、ほとんどのGoプログラムのメモリオーバーヘッドが約1%削減されました。
:# コンパイラのプロファイル誘導最適化(PGO)が改善され、より多くのインターフェースメソッド呼び出しの仮想化解除が可能になりました。代表的なGoプログラムの多くで、PGOを有効にすることで2-14%のパフォーマンス向上が見られます。
:# コンパイラは仮想化解除とインライン化を交互に行うようになり、インターフェースメソッド呼び出しの最適化が向上しました。
; 標準ライブラリの追加と改善:
:# 標準ライブラリで初めてのv2パッケージとなる<code>math/rand/v2</code>が追加されました。新しいパッケージでは、ChaCha8とPCGという2つの現代的な疑似乱数生成器を提供し、より高速なアルゴリズムを採用しています。
:# <code>net/http.ServeMux</code>のHTTPルーティングがより表現力豊かになりました。メソッドとワイルドカードをサポートし、例えば"POST /items/create"や"/items/{id}"のようなパターンが使用可能になりました。
:# <code>database/sql</code>パッケージに<code>Null[T]</code>型が追加され、任意の型のnullableカラムをスキャンする機能が提供されます。
:# <code>go/version</code>パッケージが追加され、Goバージョン文字列の検証と比較機能が提供されます。
:# <code>slices</code>パッケージに複数のスライスを連結する<code>Concat</code>関数が追加されました。
; ツールの改善:
:# Goコマンドでワークスペースのvendorディレクトリがサポートされるようになりました。<code>go work vendor</code>でディレクトリを作成し、<code>-mod=vendor</code>フラグで使用できます。
:# トレースツールのWebUIが改良され、スレッド指向のビューでトレースを探索できるようになりました。また、すべてのシステムコールの完全な実行時間が表示されるようになりました。
:# <code>go vet</code>ツールに新しい警告が追加され、appendに値を渡し忘れた場合や、time.Since呼び出しの遅延に関する問題を検出できるようになりました。
また、macOSのx86-64アーキテクチャ(darwin/amd64)向けのGoツールチェーンが、デフォルトで位置独立実行形式(PIE)を生成するようになりました。Go 1.23以降はmacOS 11 Big Sur以降が必要になることも発表されています。
=== Go 1.21 ===
Go 1.21が、2023年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.21
| title = Go 1.21 Release Notes - The Go Programming Language
| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.21
| title = Go 1.21 is released! - The Go Programming Language
5| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref>。
{{Main|[https://go.dev/doc/go1.21 Go 1.21 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.21 Go 1.21 is released! The Go Blog]}}
Go 1.21では、リリースの番号付けにわずかな変更が導入されました。Go 1.Nは、過去にGo言語のバージョン全体とリリースファミリー、およびそのファミリー内の最初のリリースを指すために使用されていました。しかし、Go 1.21から、最初のリリースはGo 1.N.0となりました。今日、Go 1.21言語とその初期実装であるGo 1.21.0リリースが公開されています。これらのノートは「Go 1.21」と呼ばれますが、go versionなどのツールは「go1.21.0」と報告されます(Go 1.21.1にアップグレードするまで)。
; ツールの改善点:
* Profile Guided Optimization(PGO)機能が一般利用可能になりました。<code>default.pgo</code>という名前のファイルがメインパッケージのディレクトリにある場合、<code>go</code>コマンドはそれを使用してPGOビルドを有効にします。
* <code>go</code>ツールは今後の言語の後方互換性と前方互換性をサポートします。
; 言語の変更点:
* 新しい組み込み関数 <code>min</code>、<code>max</code>、<code>clear</code> が追加されました。
* ジェネリック関数の型推論がいくつか改善され、仕様書の型推論の説明が拡張されました。
* Goプログラミングの最も一般的な落とし穴の1つに取り組む予定で、そのプレビューがGo 1.21に含まれています。これは環境変数を使用してコードで有効にできます。詳細はLoopvarExperiment wikiページを参照してください。
;標準ライブラリの追加点:
* 構造化ログのための新しいlog/slogパッケージが追加されました。
* 任意の要素型のスライスに対する共通操作のための新しいslicesパッケージが追加されました。これには、一般的により高速で使いやすいソート関数も含まれています。
* 任意のキーまたは要素型のマップに対する共通操作のための新しいmapsパッケージが追加されました。
* 順序付けられた値を比較するための新しいユーティリティを提供するcmpパッケージが追加されました。
; 性能の改善点:
* PGOを有効にした際のパフォーマンス向上に加えて、以下のような改善があります。
* Goコンパイラ自体がPGOを有効にして再ビルドされ、ホストアーキテクチャによってはプログラムのビルドが2〜4%高速化されました。
* ガベージコレクターの調整により、一部のアプリケーションではテールレイテンシーが最大40%削減される場合があります。
* runtime/traceでトレースを収集する際のCPUコストが、amd64およびarm64で大幅に低減されました。
; 新しいWASIポート:
* Go 1.21には、WebAssembly System Interface(WASI)の実験的なポートが追加されました(GOOS=wasip1、GOARCH=wasm)。
* より一般的なWebAssembly(Wasm)コードの記述を容易にするために、コンパイラはWasmホストからの関数のインポートのための新しい指令 <code>go:wasmimport</code> をサポートしています。
=== Go 1.20 ===
Go 1.20が、2023年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.20
| title = Go 1.20 Release Notes - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.20
| title = Go 1.20 is released! - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref>。
Go 1.20では、スライスから配列への変換が可能になりました。また、unsafeパッケージには新しい関数が追加され、スライスや文字列の値を構築および分解する完全な機能が提供されるようになりました。また、新しい仕様により、構造体のフィールドと配列の要素の比較が最初の不一致で停止するようになり、厳密に比較できない型引数を持つ型パラメータを使用して、比較制約に制限された型をインスタンス化することが可能になりました。
=== Go 1.19 ===
Go 1.19が、2022年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.19
| title = Go 1.19 Release Notes - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.19
| title = Go 1.19 is released! - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref>。
Go 1.19では、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられています。言語にはわずかな修正があり、既存のプログラムには影響がないです。メモリモデルも更新され、C、C ++、Java、JavaScript、Rust、Swiftなどのメモリモデルに合わせられた。Go 1.19では、sync/atomicパッケージに新しい型が導入され、atomic.Int64やatomic.Pointer[T]などのatomic値をより簡単に使用できるようになっています。Go 1の互換性を維持しており、ほとんどのGoプログラムは引き続き従前どおりにコンパイルおよび実行されることが予想されます。
=== Go 1.18 ===
Go 1.18が、2022年3月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.18
| title = Go 1.18 Release Notes - The Go Programming Language
| date = 2022/03/10
| accessdate = 2022-08-04
}}</ref>。
Go 1.18 には、型パラメータプロポーザル<ref>{{cite book
| url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
| title=Type Parameters Proposal
| accessdate=2021-09-30
}}</ref>で説明されたジェネリック機能の実装が含まれています。
以下は、最も目に付く変更点のリストです。
* 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ [[/関数#ジェネリック関数]]
* パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。
* 新しいトークン ~ が演算子および区切子(punctuation)に追加されました。⇒ [[/字句的要素#演算子と区切子]]
* インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ [[/型#インターフェース型]]
* 新しい事前宣言された識別子<code>any</code>は空のインターフェースの別名です。これは <code>interface{} </code>の代わりに使用することができます。
* 新しい宣言済み識別子 <code>comparable</code> は <code>==</code> や <code>!=</code> を使って比較できる全ての型の集合を表すインターフェースです.
ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。
;golang.org/x/exp/constraints
:<code>constraints.Ordered</code>のようなジェネリックコードに便利な制約です。
;golang.org/x/exp/slices
:任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。
;golang.org/x/exp/maps
:任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。
----
Go 1.18は、言語、ツールチェーン、ランタイム、ライブラリに変更があり、互換性が保たれている。最大の変更点は、ジェネリックスの導入である。ジェネリックスはバックワード互換性があるが、実際に多くの人が書き、使用して初めて本番環境で十分にテストされる。ジェネリックスの使用は推奨されるが、本番環境で使用する場合は注意が必要である。ジェネリックスにはいくつかの制限があるが、これらは将来的に改善される可能性がある。これらの変更により、Goエコシステム全体に影響があり、完全なサポートには時間がかかるだろう。
=== Go 1.17 ===
Go 1.17が、2021年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.17
| title = Go 1.17 Release Notes - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.17
| title = Go 1.17 is released! - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.17は、ツールチェーン、ランタイム、およびライブラリの実装の変更が中心で、ほとんどの変更は互換性が維持されています。言語自体には3つの小さな強化があり、スライスから配列ポインタへの変換、unsafe.Add、unsafe.Sliceが追加されました。このうち、スライスから配列ポインタへの変換が実行時にpanicを引き起こす場合があるため、タイプ変換が実行時にpanicを引き起こす可能性があることを考慮する必要があります。新しいプログラムを書く場合も、以前と同様に、unsafe.Pointerの安全ルールに従う必要があります。
=== Go 1.16 ===
Go 1.16が、2021年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.16
| title = Go 1.16 Release Notes - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.16
| title = Go 1.16 is released! - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.16では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
=== Go 1.15 ===
Go 1.15が、2020年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.15
| title = Go 1.15 Release Notes - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.15
| title = Go 1.15 is released! - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref>。
Go 1.15では、リンカーの大幅な改良、高いコア数での小規模オブジェクトの割り当ての改善、X.509 CommonNameの非推奨化、そして新しい埋め込みtzdataパッケージの追加が含まれています。
=== Go 1.14 ===
Go 1.14が、2020年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.14
| title = Go 1.14 Release Notes - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.14
| title = Go 1.14 is released! - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.14では、オーバーラップするインターフェースの提案により、埋め込まれたインターフェースで同じ名前とシグネチャを持つメソッドを許可するようになりました。しかし、インターフェース内で宣言されたメソッドは以前と同様にユニークである必要があります。
=== Go 1.13 ===
Go 1.13が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.13
| title = Go 1.13 Release Notes - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.13
| title = Go 1.13 is released! - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref>。
Go 1.13では、数字リテラルの接頭辞が変更され、バイナリ整数、8進数整数、16進数浮動小数点数、虚数リテラル、数字区切りが使用できるようになりました。さらに、符号付きシフトカウントの制限が撤廃され、制限がなくなりました。これらの変更は、コンパイラの変更によって実現されました。Go 1.13を使用するには、go.modファイルで言語バージョンを指定する必要があります。
=== Go 1.12 ===
Go 1.12が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.12
| title = Go 1.12 Release Notes - The Go Programming Language
| date = 2019/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.12
| title = Go 1.12 is released! - The Go Programming Language
| date = 2019/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.12では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
==脚註 ==
<references />
== 参考文献 ==
*{{cite book
| url = https://go.dev/ref/spec
| title = The Go Programming Language Specification
| date = JJune 13, 2024
| publisher = The Go website
}}
== 外部リンク ==
{{Wikipedia|Go (プログラミング言語)|Go}}
{{Wikiversity|Topic:Go|Go}}
* [https://go.dev/ The Go Programming Language] - 公式サイト
* [https://go.dev/play/ The Go Playground]
{{DEFAULTSORT:GO}}
[[Category:Go|*]]
[[Category:プログラミング言語]]
{{NDC|007.64}}
lgly7rxivoe5pw2s2g1n11jgx6vzbxd
263397
263396
2024-11-12T22:03:44Z
Ef3
694
/* Go 1.23 */ {{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.23 Go 1.23 is released! The Go Blog]}}
263397
wikitext
text/x-wiki
{{Pathnav|メインページ|工学|情報技術|プログラミング}}
Goは、Googleが開発したオープンソースの汎用プログラミング言語であり、システムプログラミングを主な目的として設計されています<ref name="Introduction">{{cite book
| url = https://go.dev/ref/spec#Introduction
| title = The Go Programming Language Specification Language version go1.23 (June 13, 2024)
| chapter = Introduction¶
| date = June 13, 2024
| publisher = The Go website
}}</ref>。
静的型付け言語であるため、高速で効率的なプログラムを作成することができ、また、並行処理を簡単に実装できるため、高い並行性を持ちます。
Goの文法はシンプルで読みやすく、効率的にコーディングできるため、開発者は迅速に新しいコードを書くことができます。
Goは自動的にメモリを管理するため、メモリ管理に関する手間を減らすことができます。
さらに、Windows、macOS、Linuxなど、多くのプラットフォームで動作し、標準ライブラリが豊富であり、多くの外部ライブラリが存在するため、広範な用途に対応することができます。
Goのコミュニティは活発であり、多くの開発者が参加しているため、質問や問題解決のためのリソースが豊富であり、新しい機能やライブラリが定期的にリリースされています。
この教科書では、初めてGoを学ぶ人から、より高度なトピックに興味のある人まで、幅広い読者を対象に、Goの基本から応用までを網羅的に解説します。
__TOC__
== 目次 ==
;チュートリアル篇
: [[/環境構築|環境構築]]
: [[/実行の方法|実行の方法]] {{---}} [[Go/実行の方法#Hello, World|Hello, World]]
: [[/文法の概要|文法の概要]]
: [[/変数|変数と型変換]]
: [[/算術演算と数学関数|算術演算と数学関数]]
: [[/条件分岐と繰り返し|条件分岐と繰り返し]] {{---}} if, switch, select, for, break, continue, return
: [[/関数|関数]]
: [[/メソッドとインターフェース|メソッドとインターフェース]]
: [[/ジェネリクス|ジェネリクス]]
: [[/再帰的関数呼出し|再帰的関数呼出し]]
: [[/メソッドチェイン|メソッドチェイン]]
: [[/defer,panicとrecover|defer, panicとrecover]]
: [[/並行処理|並行処理]]
: [[/配列とスライス|配列型とスライス型]]
: [[/マップ|マップ型]]
: [[/構造体|構造体型と構造体スライス]]
: [[/Goのプログラムがどんなアセンブリにコンパイルされるか?|Goのプログラムがどんなアセンブリにコンパイルされるか?]] {{---}} go tool objdump
: [[/クロスコンパイル|クロスコンパイル]] {{---}} GOOS, GOARCH
: [[/cgoでGoのコードからCの関数を利用する|cgoでGoのコードからCの関数を利用する]] {{---}} cgo
: [[/Goのコードでgoのバージョンを調べる方法|Goのコードでgoのバージョンを調べる方法]]
: [[/HTTP|HTTP]]
: [[/ファイル入出力|ファイル入出力]]
: [[/コードギャラリー|コードギャラリー]]
;リファレンス篇
: [[/ソースコードの表現方法|ソースコードの表現方法]]
: [[/キーワードと宣言済み識別子|キーワードと宣言済み識別子]] {{---}} [[/キーワードと宣言済み識別子#キーワード|キーワード]]・[[/キーワードと宣言済み識別子#宣言済み識別子|宣言済み識別子]]([[/キーワードと宣言済み識別子#組込み型|組込み型]]・[[/キーワードと宣言済み識別子#組込み関数|組込み関数]])
: [[/字句的要素|字句的要素]]
: [[/定数と変数|定数と変数]] {{---}} [[/定数と変数#定数|定数]]([[/定数と変数#iota|iota]])・[[/定数と変数#変数|変数]]
: [[/型|型]]
: [[/型と値の特性|型と値の特性]]
: [[/ブロック・宣言とスコープ|ブロック・宣言とスコープ]] {{---}} [[/ブロック・宣言とスコープ#ブロック|ブロック]]・[[/ブロック・宣言とスコープ#宣言とスコープ|宣言とスコープ]]
: [[/式|式]] {{---}} [[/式#演算子|演算子]]
: [[/文|文]]
: [[/パッケージ|パッケージ]]
: [[/プログラムの初期化と実行|プログラムの初期化と実行]]
: [[/エラー|エラー]]
: [[/EBNF|EBNF]]
;[[/標準ライブラリー|標準ライブラリー篇]]
== バージョン間の変更点 ==
Go は、約半年ごとに新しいバージョンがリリースされます。バージョンが変わると、言語仕様に追加変更があったり、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられることがあり、稀に既存のプログラムに影響が出ることもあります。以下に、最新のバージョンから順に変更点を記載します。
=== Go 1.23 ===
Go 1.23が、2024年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.23
| title = Go 1.23 Release Notes - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.23
| title = Go 1.23 is released! - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref>。
Go 1.23のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.23 Go 1.23 is released! The Go Blog]}}
; 言語の変更点:
:# "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。
:# ジェネリック型エイリアスのプレビューサポートが追加されました(GOEXPERIMENT=aliastypeparamsを有効にする必要があります)。
; 新しい標準パッケージ:
:# uniqueパッケージ:値の正規化(インターン化やハッシュコンス化)を行うための機能を提供します。
:# iterパッケージ:ユーザー定義のイテレータ機能を提供します。
:# structsパッケージ:構造体のメモリレイアウトなどのプロパティを制御する機能を提供します。
; パフォーマンスの改善点:
:# Profile Guided Optimization (PGO)のビルドオーバーヘッドが大幅に削減されました。以前は100%以上の増加が見られましたが、今回のリリースでは一桁台のパーセンテージまで改善されています。
:# コンパイラがローカル変数のスタックフレームスロットを最適化し、関数内の異なる領域で重複して使用できるようになり、スタック使用量が削減されました。
; テレメトリーと開発者ツール:
:# Goツールチェーンが使用状況と問題点の統計情報を収集できるテレメトリー機能が追加されました(オプトイン方式)。
:# go vetコマンドにstdversionアナライザーが追加され、使用しているGoバージョンと互換性のないシンボルの参照を検出できるようになりました。
; プラットフォームサポートの変更:
:# macOSは11 (Big Sur)以降が必要になりました。
:# Linux kernelは2.6.32以降が必要です(Go 1.24では3.2以降になる予定)。
:# OpenBSDの64-bit RISC-Vサポートが試験的に追加されました。
また、time.TimerとTime.Tickerの実装が大幅に改善され、未使用のタイマーがガベージコレクションの対象となるようになりました。セキュリティ面では、TLSクライアントがEncrypted Client Helloをサポートし、3DESの暗号スイートがデフォルトリストから削除されるなどの改善が行われています。
=== Go 1.22 ===
Go 1.22が、2024年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.22
| title = Go 1.22 Release Notes - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.22
| title = Go 1.22 is released! - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref>。
Go 1.22のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.22 Go 1.22 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.22 Go 1.22 is released! The Go Blog]}}
; 言語の変更点:
:# 長らく問題視されてきた「for」ループの変数スコープが変更されました。以前は変数が一度だけ作成され、各イテレーションで更新されていましたが、Go 1.22以降は各イテレーションで新しい変数が作成されるようになり、意図しない共有の問題が解消されました。
:# 整数の範囲に対する<code>range</code>のサポートが追加されました。例えば、<code>for i := range 10</code>のような構文が可能になりました。
; パフォーマンスの改善点:
:# ガベージコレクションのメタデータを各ヒープオブジェクトの近くに配置するように最適化されました。これにより、CPUパフォーマンスが1-3%向上し、ほとんどのGoプログラムのメモリオーバーヘッドが約1%削減されました。
:# コンパイラのプロファイル誘導最適化(PGO)が改善され、より多くのインターフェースメソッド呼び出しの仮想化解除が可能になりました。代表的なGoプログラムの多くで、PGOを有効にすることで2-14%のパフォーマンス向上が見られます。
:# コンパイラは仮想化解除とインライン化を交互に行うようになり、インターフェースメソッド呼び出しの最適化が向上しました。
; 標準ライブラリの追加と改善:
:# 標準ライブラリで初めてのv2パッケージとなる<code>math/rand/v2</code>が追加されました。新しいパッケージでは、ChaCha8とPCGという2つの現代的な疑似乱数生成器を提供し、より高速なアルゴリズムを採用しています。
:# <code>net/http.ServeMux</code>のHTTPルーティングがより表現力豊かになりました。メソッドとワイルドカードをサポートし、例えば"POST /items/create"や"/items/{id}"のようなパターンが使用可能になりました。
:# <code>database/sql</code>パッケージに<code>Null[T]</code>型が追加され、任意の型のnullableカラムをスキャンする機能が提供されます。
:# <code>go/version</code>パッケージが追加され、Goバージョン文字列の検証と比較機能が提供されます。
:# <code>slices</code>パッケージに複数のスライスを連結する<code>Concat</code>関数が追加されました。
; ツールの改善:
:# Goコマンドでワークスペースのvendorディレクトリがサポートされるようになりました。<code>go work vendor</code>でディレクトリを作成し、<code>-mod=vendor</code>フラグで使用できます。
:# トレースツールのWebUIが改良され、スレッド指向のビューでトレースを探索できるようになりました。また、すべてのシステムコールの完全な実行時間が表示されるようになりました。
:# <code>go vet</code>ツールに新しい警告が追加され、appendに値を渡し忘れた場合や、time.Since呼び出しの遅延に関する問題を検出できるようになりました。
また、macOSのx86-64アーキテクチャ(darwin/amd64)向けのGoツールチェーンが、デフォルトで位置独立実行形式(PIE)を生成するようになりました。Go 1.23以降はmacOS 11 Big Sur以降が必要になることも発表されています。
=== Go 1.21 ===
Go 1.21が、2023年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.21
| title = Go 1.21 Release Notes - The Go Programming Language
| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.21
| title = Go 1.21 is released! - The Go Programming Language
5| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref>。
{{Main|[https://go.dev/doc/go1.21 Go 1.21 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.21 Go 1.21 is released! The Go Blog]}}
Go 1.21では、リリースの番号付けにわずかな変更が導入されました。Go 1.Nは、過去にGo言語のバージョン全体とリリースファミリー、およびそのファミリー内の最初のリリースを指すために使用されていました。しかし、Go 1.21から、最初のリリースはGo 1.N.0となりました。今日、Go 1.21言語とその初期実装であるGo 1.21.0リリースが公開されています。これらのノートは「Go 1.21」と呼ばれますが、go versionなどのツールは「go1.21.0」と報告されます(Go 1.21.1にアップグレードするまで)。
; ツールの改善点:
* Profile Guided Optimization(PGO)機能が一般利用可能になりました。<code>default.pgo</code>という名前のファイルがメインパッケージのディレクトリにある場合、<code>go</code>コマンドはそれを使用してPGOビルドを有効にします。
* <code>go</code>ツールは今後の言語の後方互換性と前方互換性をサポートします。
; 言語の変更点:
* 新しい組み込み関数 <code>min</code>、<code>max</code>、<code>clear</code> が追加されました。
* ジェネリック関数の型推論がいくつか改善され、仕様書の型推論の説明が拡張されました。
* Goプログラミングの最も一般的な落とし穴の1つに取り組む予定で、そのプレビューがGo 1.21に含まれています。これは環境変数を使用してコードで有効にできます。詳細はLoopvarExperiment wikiページを参照してください。
;標準ライブラリの追加点:
* 構造化ログのための新しいlog/slogパッケージが追加されました。
* 任意の要素型のスライスに対する共通操作のための新しいslicesパッケージが追加されました。これには、一般的により高速で使いやすいソート関数も含まれています。
* 任意のキーまたは要素型のマップに対する共通操作のための新しいmapsパッケージが追加されました。
* 順序付けられた値を比較するための新しいユーティリティを提供するcmpパッケージが追加されました。
; 性能の改善点:
* PGOを有効にした際のパフォーマンス向上に加えて、以下のような改善があります。
* Goコンパイラ自体がPGOを有効にして再ビルドされ、ホストアーキテクチャによってはプログラムのビルドが2〜4%高速化されました。
* ガベージコレクターの調整により、一部のアプリケーションではテールレイテンシーが最大40%削減される場合があります。
* runtime/traceでトレースを収集する際のCPUコストが、amd64およびarm64で大幅に低減されました。
; 新しいWASIポート:
* Go 1.21には、WebAssembly System Interface(WASI)の実験的なポートが追加されました(GOOS=wasip1、GOARCH=wasm)。
* より一般的なWebAssembly(Wasm)コードの記述を容易にするために、コンパイラはWasmホストからの関数のインポートのための新しい指令 <code>go:wasmimport</code> をサポートしています。
=== Go 1.20 ===
Go 1.20が、2023年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.20
| title = Go 1.20 Release Notes - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.20
| title = Go 1.20 is released! - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref>。
Go 1.20では、スライスから配列への変換が可能になりました。また、unsafeパッケージには新しい関数が追加され、スライスや文字列の値を構築および分解する完全な機能が提供されるようになりました。また、新しい仕様により、構造体のフィールドと配列の要素の比較が最初の不一致で停止するようになり、厳密に比較できない型引数を持つ型パラメータを使用して、比較制約に制限された型をインスタンス化することが可能になりました。
=== Go 1.19 ===
Go 1.19が、2022年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.19
| title = Go 1.19 Release Notes - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.19
| title = Go 1.19 is released! - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref>。
Go 1.19では、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられています。言語にはわずかな修正があり、既存のプログラムには影響がないです。メモリモデルも更新され、C、C ++、Java、JavaScript、Rust、Swiftなどのメモリモデルに合わせられた。Go 1.19では、sync/atomicパッケージに新しい型が導入され、atomic.Int64やatomic.Pointer[T]などのatomic値をより簡単に使用できるようになっています。Go 1の互換性を維持しており、ほとんどのGoプログラムは引き続き従前どおりにコンパイルおよび実行されることが予想されます。
=== Go 1.18 ===
Go 1.18が、2022年3月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.18
| title = Go 1.18 Release Notes - The Go Programming Language
| date = 2022/03/10
| accessdate = 2022-08-04
}}</ref>。
Go 1.18 には、型パラメータプロポーザル<ref>{{cite book
| url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
| title=Type Parameters Proposal
| accessdate=2021-09-30
}}</ref>で説明されたジェネリック機能の実装が含まれています。
以下は、最も目に付く変更点のリストです。
* 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ [[/関数#ジェネリック関数]]
* パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。
* 新しいトークン ~ が演算子および区切子(punctuation)に追加されました。⇒ [[/字句的要素#演算子と区切子]]
* インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ [[/型#インターフェース型]]
* 新しい事前宣言された識別子<code>any</code>は空のインターフェースの別名です。これは <code>interface{} </code>の代わりに使用することができます。
* 新しい宣言済み識別子 <code>comparable</code> は <code>==</code> や <code>!=</code> を使って比較できる全ての型の集合を表すインターフェースです.
ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。
;golang.org/x/exp/constraints
:<code>constraints.Ordered</code>のようなジェネリックコードに便利な制約です。
;golang.org/x/exp/slices
:任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。
;golang.org/x/exp/maps
:任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。
----
Go 1.18は、言語、ツールチェーン、ランタイム、ライブラリに変更があり、互換性が保たれている。最大の変更点は、ジェネリックスの導入である。ジェネリックスはバックワード互換性があるが、実際に多くの人が書き、使用して初めて本番環境で十分にテストされる。ジェネリックスの使用は推奨されるが、本番環境で使用する場合は注意が必要である。ジェネリックスにはいくつかの制限があるが、これらは将来的に改善される可能性がある。これらの変更により、Goエコシステム全体に影響があり、完全なサポートには時間がかかるだろう。
=== Go 1.17 ===
Go 1.17が、2021年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.17
| title = Go 1.17 Release Notes - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.17
| title = Go 1.17 is released! - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.17は、ツールチェーン、ランタイム、およびライブラリの実装の変更が中心で、ほとんどの変更は互換性が維持されています。言語自体には3つの小さな強化があり、スライスから配列ポインタへの変換、unsafe.Add、unsafe.Sliceが追加されました。このうち、スライスから配列ポインタへの変換が実行時にpanicを引き起こす場合があるため、タイプ変換が実行時にpanicを引き起こす可能性があることを考慮する必要があります。新しいプログラムを書く場合も、以前と同様に、unsafe.Pointerの安全ルールに従う必要があります。
=== Go 1.16 ===
Go 1.16が、2021年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.16
| title = Go 1.16 Release Notes - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.16
| title = Go 1.16 is released! - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.16では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
=== Go 1.15 ===
Go 1.15が、2020年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.15
| title = Go 1.15 Release Notes - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.15
| title = Go 1.15 is released! - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref>。
Go 1.15では、リンカーの大幅な改良、高いコア数での小規模オブジェクトの割り当ての改善、X.509 CommonNameの非推奨化、そして新しい埋め込みtzdataパッケージの追加が含まれています。
=== Go 1.14 ===
Go 1.14が、2020年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.14
| title = Go 1.14 Release Notes - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.14
| title = Go 1.14 is released! - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.14では、オーバーラップするインターフェースの提案により、埋め込まれたインターフェースで同じ名前とシグネチャを持つメソッドを許可するようになりました。しかし、インターフェース内で宣言されたメソッドは以前と同様にユニークである必要があります。
=== Go 1.13 ===
Go 1.13が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.13
| title = Go 1.13 Release Notes - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.13
| title = Go 1.13 is released! - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref>。
Go 1.13では、数字リテラルの接頭辞が変更され、バイナリ整数、8進数整数、16進数浮動小数点数、虚数リテラル、数字区切りが使用できるようになりました。さらに、符号付きシフトカウントの制限が撤廃され、制限がなくなりました。これらの変更は、コンパイラの変更によって実現されました。Go 1.13を使用するには、go.modファイルで言語バージョンを指定する必要があります。
=== Go 1.12 ===
Go 1.12が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.12
| title = Go 1.12 Release Notes - The Go Programming Language
| date = 2019/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.12
| title = Go 1.12 is released! - The Go Programming Language
| date = 2019/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.12では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
==脚註 ==
<references />
== 参考文献 ==
*{{cite book
| url = https://go.dev/ref/spec
| title = The Go Programming Language Specification
| date = JJune 13, 2024
| publisher = The Go website
}}
== 外部リンク ==
{{Wikipedia|Go (プログラミング言語)|Go}}
{{Wikiversity|Topic:Go|Go}}
* [https://go.dev/ The Go Programming Language] - 公式サイト
* [https://go.dev/play/ The Go Playground]
{{DEFAULTSORT:GO}}
[[Category:Go|*]]
[[Category:プログラミング言語]]
{{NDC|007.64}}
0pchsg8000ljcwctk3jl97ah2wrnzr3
263398
263397
2024-11-12T22:13:17Z
Ef3
694
/* Go 1.11 */ モジュールサポートの追加 GOPATHに依存しない新しい「モジュール」という概念が導入 バージョン管理と依存関係管理が統合 実験的な機能として追加 WebAssemblyのサポート 実験的なWebAssembly(js/wasm)ポートを追加 syscall/jsパッケージを通じてJavaScriptを呼び出し可能 最小サイズは約2MB(圧縮で500KB) デバッグ機能の改善 最適化されたバイナリのデバッグ情報が大幅に改善 DWARFセクションがデフォルトで圧縮されるように デバッガー内からのGo関数呼び出しを実験的にサポート パフォーマンスの改善 コンパイラの最適化が改善 マップのクリア操作の最適化 スライス拡張の最適化 境界チェックと分岐除去の改善 ランタイムの改善 スパースヒープレイアウトの採用でGoヒープサイズの制限を撤廃 macOSとiOSでlibSystem.dylibを使用するように変更
263398
wikitext
text/x-wiki
{{Pathnav|メインページ|工学|情報技術|プログラミング}}
Goは、Googleが開発したオープンソースの汎用プログラミング言語であり、システムプログラミングを主な目的として設計されています<ref name="Introduction">{{cite book
| url = https://go.dev/ref/spec#Introduction
| title = The Go Programming Language Specification Language version go1.23 (June 13, 2024)
| chapter = Introduction¶
| date = June 13, 2024
| publisher = The Go website
}}</ref>。
静的型付け言語であるため、高速で効率的なプログラムを作成することができ、また、並行処理を簡単に実装できるため、高い並行性を持ちます。
Goの文法はシンプルで読みやすく、効率的にコーディングできるため、開発者は迅速に新しいコードを書くことができます。
Goは自動的にメモリを管理するため、メモリ管理に関する手間を減らすことができます。
さらに、Windows、macOS、Linuxなど、多くのプラットフォームで動作し、標準ライブラリが豊富であり、多くの外部ライブラリが存在するため、広範な用途に対応することができます。
Goのコミュニティは活発であり、多くの開発者が参加しているため、質問や問題解決のためのリソースが豊富であり、新しい機能やライブラリが定期的にリリースされています。
この教科書では、初めてGoを学ぶ人から、より高度なトピックに興味のある人まで、幅広い読者を対象に、Goの基本から応用までを網羅的に解説します。
__TOC__
== 目次 ==
;チュートリアル篇
: [[/環境構築|環境構築]]
: [[/実行の方法|実行の方法]] {{---}} [[Go/実行の方法#Hello, World|Hello, World]]
: [[/文法の概要|文法の概要]]
: [[/変数|変数と型変換]]
: [[/算術演算と数学関数|算術演算と数学関数]]
: [[/条件分岐と繰り返し|条件分岐と繰り返し]] {{---}} if, switch, select, for, break, continue, return
: [[/関数|関数]]
: [[/メソッドとインターフェース|メソッドとインターフェース]]
: [[/ジェネリクス|ジェネリクス]]
: [[/再帰的関数呼出し|再帰的関数呼出し]]
: [[/メソッドチェイン|メソッドチェイン]]
: [[/defer,panicとrecover|defer, panicとrecover]]
: [[/並行処理|並行処理]]
: [[/配列とスライス|配列型とスライス型]]
: [[/マップ|マップ型]]
: [[/構造体|構造体型と構造体スライス]]
: [[/Goのプログラムがどんなアセンブリにコンパイルされるか?|Goのプログラムがどんなアセンブリにコンパイルされるか?]] {{---}} go tool objdump
: [[/クロスコンパイル|クロスコンパイル]] {{---}} GOOS, GOARCH
: [[/cgoでGoのコードからCの関数を利用する|cgoでGoのコードからCの関数を利用する]] {{---}} cgo
: [[/Goのコードでgoのバージョンを調べる方法|Goのコードでgoのバージョンを調べる方法]]
: [[/HTTP|HTTP]]
: [[/ファイル入出力|ファイル入出力]]
: [[/コードギャラリー|コードギャラリー]]
;リファレンス篇
: [[/ソースコードの表現方法|ソースコードの表現方法]]
: [[/キーワードと宣言済み識別子|キーワードと宣言済み識別子]] {{---}} [[/キーワードと宣言済み識別子#キーワード|キーワード]]・[[/キーワードと宣言済み識別子#宣言済み識別子|宣言済み識別子]]([[/キーワードと宣言済み識別子#組込み型|組込み型]]・[[/キーワードと宣言済み識別子#組込み関数|組込み関数]])
: [[/字句的要素|字句的要素]]
: [[/定数と変数|定数と変数]] {{---}} [[/定数と変数#定数|定数]]([[/定数と変数#iota|iota]])・[[/定数と変数#変数|変数]]
: [[/型|型]]
: [[/型と値の特性|型と値の特性]]
: [[/ブロック・宣言とスコープ|ブロック・宣言とスコープ]] {{---}} [[/ブロック・宣言とスコープ#ブロック|ブロック]]・[[/ブロック・宣言とスコープ#宣言とスコープ|宣言とスコープ]]
: [[/式|式]] {{---}} [[/式#演算子|演算子]]
: [[/文|文]]
: [[/パッケージ|パッケージ]]
: [[/プログラムの初期化と実行|プログラムの初期化と実行]]
: [[/エラー|エラー]]
: [[/EBNF|EBNF]]
;[[/標準ライブラリー|標準ライブラリー篇]]
== バージョン間の変更点 ==
Go は、約半年ごとに新しいバージョンがリリースされます。バージョンが変わると、言語仕様に追加変更があったり、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられることがあり、稀に既存のプログラムに影響が出ることもあります。以下に、最新のバージョンから順に変更点を記載します。
=== Go 1.23 ===
Go 1.23が、2024年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.23
| title = Go 1.23 Release Notes - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.23
| title = Go 1.23 is released! - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref>。
Go 1.23のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.23 Go 1.23 is released! The Go Blog]}}
; 言語の変更点:
:# "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。
:# ジェネリック型エイリアスのプレビューサポートが追加されました(GOEXPERIMENT=aliastypeparamsを有効にする必要があります)。
; 新しい標準パッケージ:
:# uniqueパッケージ:値の正規化(インターン化やハッシュコンス化)を行うための機能を提供します。
:# iterパッケージ:ユーザー定義のイテレータ機能を提供します。
:# structsパッケージ:構造体のメモリレイアウトなどのプロパティを制御する機能を提供します。
; パフォーマンスの改善点:
:# Profile Guided Optimization (PGO)のビルドオーバーヘッドが大幅に削減されました。以前は100%以上の増加が見られましたが、今回のリリースでは一桁台のパーセンテージまで改善されています。
:# コンパイラがローカル変数のスタックフレームスロットを最適化し、関数内の異なる領域で重複して使用できるようになり、スタック使用量が削減されました。
; テレメトリーと開発者ツール:
:# Goツールチェーンが使用状況と問題点の統計情報を収集できるテレメトリー機能が追加されました(オプトイン方式)。
:# go vetコマンドにstdversionアナライザーが追加され、使用しているGoバージョンと互換性のないシンボルの参照を検出できるようになりました。
; プラットフォームサポートの変更:
:# macOSは11 (Big Sur)以降が必要になりました。
:# Linux kernelは2.6.32以降が必要です(Go 1.24では3.2以降になる予定)。
:# OpenBSDの64-bit RISC-Vサポートが試験的に追加されました。
また、time.TimerとTime.Tickerの実装が大幅に改善され、未使用のタイマーがガベージコレクションの対象となるようになりました。セキュリティ面では、TLSクライアントがEncrypted Client Helloをサポートし、3DESの暗号スイートがデフォルトリストから削除されるなどの改善が行われています。
=== Go 1.22 ===
Go 1.22が、2024年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.22
| title = Go 1.22 Release Notes - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.22
| title = Go 1.22 is released! - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref>。
Go 1.22のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.22 Go 1.22 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.22 Go 1.22 is released! The Go Blog]}}
; 言語の変更点:
:# 長らく問題視されてきた「for」ループの変数スコープが変更されました。以前は変数が一度だけ作成され、各イテレーションで更新されていましたが、Go 1.22以降は各イテレーションで新しい変数が作成されるようになり、意図しない共有の問題が解消されました。
:# 整数の範囲に対する<code>range</code>のサポートが追加されました。例えば、<code>for i := range 10</code>のような構文が可能になりました。
; パフォーマンスの改善点:
:# ガベージコレクションのメタデータを各ヒープオブジェクトの近くに配置するように最適化されました。これにより、CPUパフォーマンスが1-3%向上し、ほとんどのGoプログラムのメモリオーバーヘッドが約1%削減されました。
:# コンパイラのプロファイル誘導最適化(PGO)が改善され、より多くのインターフェースメソッド呼び出しの仮想化解除が可能になりました。代表的なGoプログラムの多くで、PGOを有効にすることで2-14%のパフォーマンス向上が見られます。
:# コンパイラは仮想化解除とインライン化を交互に行うようになり、インターフェースメソッド呼び出しの最適化が向上しました。
; 標準ライブラリの追加と改善:
:# 標準ライブラリで初めてのv2パッケージとなる<code>math/rand/v2</code>が追加されました。新しいパッケージでは、ChaCha8とPCGという2つの現代的な疑似乱数生成器を提供し、より高速なアルゴリズムを採用しています。
:# <code>net/http.ServeMux</code>のHTTPルーティングがより表現力豊かになりました。メソッドとワイルドカードをサポートし、例えば"POST /items/create"や"/items/{id}"のようなパターンが使用可能になりました。
:# <code>database/sql</code>パッケージに<code>Null[T]</code>型が追加され、任意の型のnullableカラムをスキャンする機能が提供されます。
:# <code>go/version</code>パッケージが追加され、Goバージョン文字列の検証と比較機能が提供されます。
:# <code>slices</code>パッケージに複数のスライスを連結する<code>Concat</code>関数が追加されました。
; ツールの改善:
:# Goコマンドでワークスペースのvendorディレクトリがサポートされるようになりました。<code>go work vendor</code>でディレクトリを作成し、<code>-mod=vendor</code>フラグで使用できます。
:# トレースツールのWebUIが改良され、スレッド指向のビューでトレースを探索できるようになりました。また、すべてのシステムコールの完全な実行時間が表示されるようになりました。
:# <code>go vet</code>ツールに新しい警告が追加され、appendに値を渡し忘れた場合や、time.Since呼び出しの遅延に関する問題を検出できるようになりました。
また、macOSのx86-64アーキテクチャ(darwin/amd64)向けのGoツールチェーンが、デフォルトで位置独立実行形式(PIE)を生成するようになりました。Go 1.23以降はmacOS 11 Big Sur以降が必要になることも発表されています。
=== Go 1.21 ===
Go 1.21が、2023年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.21
| title = Go 1.21 Release Notes - The Go Programming Language
| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.21
| title = Go 1.21 is released! - The Go Programming Language
5| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref>。
{{Main|[https://go.dev/doc/go1.21 Go 1.21 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.21 Go 1.21 is released! The Go Blog]}}
Go 1.21では、リリースの番号付けにわずかな変更が導入されました。Go 1.Nは、過去にGo言語のバージョン全体とリリースファミリー、およびそのファミリー内の最初のリリースを指すために使用されていました。しかし、Go 1.21から、最初のリリースはGo 1.N.0となりました。今日、Go 1.21言語とその初期実装であるGo 1.21.0リリースが公開されています。これらのノートは「Go 1.21」と呼ばれますが、go versionなどのツールは「go1.21.0」と報告されます(Go 1.21.1にアップグレードするまで)。
; ツールの改善点:
* Profile Guided Optimization(PGO)機能が一般利用可能になりました。<code>default.pgo</code>という名前のファイルがメインパッケージのディレクトリにある場合、<code>go</code>コマンドはそれを使用してPGOビルドを有効にします。
* <code>go</code>ツールは今後の言語の後方互換性と前方互換性をサポートします。
; 言語の変更点:
* 新しい組み込み関数 <code>min</code>、<code>max</code>、<code>clear</code> が追加されました。
* ジェネリック関数の型推論がいくつか改善され、仕様書の型推論の説明が拡張されました。
* Goプログラミングの最も一般的な落とし穴の1つに取り組む予定で、そのプレビューがGo 1.21に含まれています。これは環境変数を使用してコードで有効にできます。詳細はLoopvarExperiment wikiページを参照してください。
;標準ライブラリの追加点:
* 構造化ログのための新しいlog/slogパッケージが追加されました。
* 任意の要素型のスライスに対する共通操作のための新しいslicesパッケージが追加されました。これには、一般的により高速で使いやすいソート関数も含まれています。
* 任意のキーまたは要素型のマップに対する共通操作のための新しいmapsパッケージが追加されました。
* 順序付けられた値を比較するための新しいユーティリティを提供するcmpパッケージが追加されました。
; 性能の改善点:
* PGOを有効にした際のパフォーマンス向上に加えて、以下のような改善があります。
* Goコンパイラ自体がPGOを有効にして再ビルドされ、ホストアーキテクチャによってはプログラムのビルドが2〜4%高速化されました。
* ガベージコレクターの調整により、一部のアプリケーションではテールレイテンシーが最大40%削減される場合があります。
* runtime/traceでトレースを収集する際のCPUコストが、amd64およびarm64で大幅に低減されました。
; 新しいWASIポート:
* Go 1.21には、WebAssembly System Interface(WASI)の実験的なポートが追加されました(GOOS=wasip1、GOARCH=wasm)。
* より一般的なWebAssembly(Wasm)コードの記述を容易にするために、コンパイラはWasmホストからの関数のインポートのための新しい指令 <code>go:wasmimport</code> をサポートしています。
=== Go 1.20 ===
Go 1.20が、2023年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.20
| title = Go 1.20 Release Notes - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.20
| title = Go 1.20 is released! - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref>。
Go 1.20では、スライスから配列への変換が可能になりました。また、unsafeパッケージには新しい関数が追加され、スライスや文字列の値を構築および分解する完全な機能が提供されるようになりました。また、新しい仕様により、構造体のフィールドと配列の要素の比較が最初の不一致で停止するようになり、厳密に比較できない型引数を持つ型パラメータを使用して、比較制約に制限された型をインスタンス化することが可能になりました。
=== Go 1.19 ===
Go 1.19が、2022年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.19
| title = Go 1.19 Release Notes - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.19
| title = Go 1.19 is released! - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref>。
Go 1.19では、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられています。言語にはわずかな修正があり、既存のプログラムには影響がないです。メモリモデルも更新され、C、C ++、Java、JavaScript、Rust、Swiftなどのメモリモデルに合わせられた。Go 1.19では、sync/atomicパッケージに新しい型が導入され、atomic.Int64やatomic.Pointer[T]などのatomic値をより簡単に使用できるようになっています。Go 1の互換性を維持しており、ほとんどのGoプログラムは引き続き従前どおりにコンパイルおよび実行されることが予想されます。
=== Go 1.18 ===
Go 1.18が、2022年3月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.18
| title = Go 1.18 Release Notes - The Go Programming Language
| date = 2022/03/10
| accessdate = 2022-08-04
}}</ref>。
Go 1.18 には、型パラメータプロポーザル<ref>{{cite book
| url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
| title=Type Parameters Proposal
| accessdate=2021-09-30
}}</ref>で説明されたジェネリック機能の実装が含まれています。
以下は、最も目に付く変更点のリストです。
* 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ [[/関数#ジェネリック関数]]
* パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。
* 新しいトークン ~ が演算子および区切子(punctuation)に追加されました。⇒ [[/字句的要素#演算子と区切子]]
* インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ [[/型#インターフェース型]]
* 新しい事前宣言された識別子<code>any</code>は空のインターフェースの別名です。これは <code>interface{} </code>の代わりに使用することができます。
* 新しい宣言済み識別子 <code>comparable</code> は <code>==</code> や <code>!=</code> を使って比較できる全ての型の集合を表すインターフェースです.
ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。
;golang.org/x/exp/constraints
:<code>constraints.Ordered</code>のようなジェネリックコードに便利な制約です。
;golang.org/x/exp/slices
:任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。
;golang.org/x/exp/maps
:任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。
----
Go 1.18は、言語、ツールチェーン、ランタイム、ライブラリに変更があり、互換性が保たれている。最大の変更点は、ジェネリックスの導入である。ジェネリックスはバックワード互換性があるが、実際に多くの人が書き、使用して初めて本番環境で十分にテストされる。ジェネリックスの使用は推奨されるが、本番環境で使用する場合は注意が必要である。ジェネリックスにはいくつかの制限があるが、これらは将来的に改善される可能性がある。これらの変更により、Goエコシステム全体に影響があり、完全なサポートには時間がかかるだろう。
=== Go 1.17 ===
Go 1.17が、2021年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.17
| title = Go 1.17 Release Notes - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.17
| title = Go 1.17 is released! - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.17は、ツールチェーン、ランタイム、およびライブラリの実装の変更が中心で、ほとんどの変更は互換性が維持されています。言語自体には3つの小さな強化があり、スライスから配列ポインタへの変換、unsafe.Add、unsafe.Sliceが追加されました。このうち、スライスから配列ポインタへの変換が実行時にpanicを引き起こす場合があるため、タイプ変換が実行時にpanicを引き起こす可能性があることを考慮する必要があります。新しいプログラムを書く場合も、以前と同様に、unsafe.Pointerの安全ルールに従う必要があります。
=== Go 1.16 ===
Go 1.16が、2021年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.16
| title = Go 1.16 Release Notes - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.16
| title = Go 1.16 is released! - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref>。
Go 1.16では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
=== Go 1.15 ===
Go 1.15が、2020年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.15
| title = Go 1.15 Release Notes - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.15
| title = Go 1.15 is released! - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref>。
Go 1.15では、リンカーの大幅な改良、高いコア数での小規模オブジェクトの割り当ての改善、X.509 CommonNameの非推奨化、そして新しい埋め込みtzdataパッケージの追加が含まれています。
=== Go 1.14 ===
Go 1.14が、2020年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.14
| title = Go 1.14 Release Notes - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.14
| title = Go 1.14 is released! - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref>。
Go 1.14では、オーバーラップするインターフェースの提案により、埋め込まれたインターフェースで同じ名前とシグネチャを持つメソッドを許可するようになりました。しかし、インターフェース内で宣言されたメソッドは以前と同様にユニークである必要があります。
=== Go 1.13 ===
Go 1.13が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.13
| title = Go 1.13 Release Notes - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.13
| title = Go 1.13 is released! - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref>。
Go 1.13では、数字リテラルの接頭辞が変更され、バイナリ整数、8進数整数、16進数浮動小数点数、虚数リテラル、数字区切りが使用できるようになりました。さらに、符号付きシフトカウントの制限が撤廃され、制限がなくなりました。これらの変更は、コンパイラの変更によって実現されました。Go 1.13を使用するには、go.modファイルで言語バージョンを指定する必要があります。
=== Go 1.12 ===
Go 1.12が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.12
| title = Go 1.12 Release Notes - The Go Programming Language
| date = 2019/02/25
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.12
| title = Go 1.12 is released! - The Go Programming Language
| date = 2019/02/25
| accessdate = 2024/11/13
}}</ref>。
Go 1.12のリリースには、いくつかの新機能と改善が含まれ、Go言語のパフォーマンスやユーザビリティがさらに向上しました。以下が主な変更点です。
{{Main|[https://go.dev/doc/go1.12 Go 1.12 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.12 Go 1.12 is released! The Go Blog]}}
; 主要な新機能:
:# Windows向けに、標準ライブラリがコントロールグループのサポートやシステムコールの改善により、性能向上と安定性が強化されました。
:# macOS向けの新しいサポートとして、ヒープメモリ使用量の削減や効率化が進められました。
; パフォーマンスの改善点:
:# 文字列操作の最適化が行われ、<code>strings.Trim</code>や<code>strings.Index</code>のパフォーマンスが向上しました。
:# 並列ガベージコレクションが改良され、メモリ管理の効率が向上しています。
:# コンパイラの境界チェックが一部のパターンで自動的に省略されるようになり、コード生成の効率がさらに向上しました。
; デバッグ機能の改善:
:# より正確な変数位置とスタック情報の提供により、デバッグ体験が改善されています。
:# 新たにDWARF生成の機能が拡充され、特に最適化コードにおいて、デバッグ情報の信頼性が高まりました。
; ランタイムの改善:
:# Windows上で、64ビットプロセスのアドレス空間使用が最適化され、より多くのメモリを使用可能になりました。
:# Goランタイムのシグナルハンドリングが強化され、システムシグナルの処理能力が向上しました。
; 標準ライブラリの改善:
:# <code>crypto/x509</code>パッケージで、証明書の検証がmacOSのシステム証明書ストアを使用するようになり、macOSでの信頼性が向上しました。
:# <code>net/http</code>において、HTTP/2の接続管理が改善され、特に大量接続環境での安定性が増しました。
:# <code>os</code>パッケージの<code>Process.Signal</code>がWindowsでも利用可能となり、Windows上のプロセス管理機能が強化されました。
; ツールの改善:
:# <code>go test</code>コマンドに<code>-json</code>フラグが追加され、テスト結果をJSON形式で出力できるようになりました。
:# goコマンドが<code>go.sum</code>ファイルを自動的に更新し、依存関係の信頼性が向上しています。
:# <code>gofmt</code>において、特定のコードパターンの整形が改良され、より一貫したコードスタイルが保たれます。
また、OpenBSD 6.4以降、macOS 10.11 El Capitan以降、またはWindows 7以降が必要となり、これらのOSの以前のバージョンのサポートが終了しました。リリースノートでは、Go 1の互換性は維持されており、ほとんどのGoプログラムは以前と同様に動作すると述べられています。
=== Go 1.11 ===
Go 1.11が、2018年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.11
| title = Go 1.11 Release Notes - The Go Programming Language
| date = 2018/08/24
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.11
| title = Go 1.11 is released! - The Go Programming Language
| date = 2018/08/24
| accessdate = 2024/11/13
}}</ref>。
Go 1.11のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.11 Go 1.11 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.11 Go 1.11 is released! The Go Blog]}}
; 主要な新機能:
:# モジュールサポートの実験的な導入により、GOPATHに依存しない開発が可能になりました。バージョン管理と依存関係管理が統合され、より信頼性の高いビルドが実現できます。
:# WebAssembly(js/wasm)の実験的なポートが追加され、syscall/jsパッケージを通じてJavaScriptとの連携が可能になりました。
:# RISCVアーキテクチャ向けのGOARCH値("riscv"と"riscv64")が予約されました。
; パフォーマンスの改善点:
:# マップのクリア操作が最適化され、<code>for k := range m { delete(m, k) }</code>のようなコードが効率的に実行されるようになりました。
:# スライス拡張の<code>append(s, make([]T, n)...)</code>が最適化されました。
:# コンパイラの境界チェックと分岐除去が大幅に改善され、より効率的なコードが生成されるようになりました。
; デバッグ機能の改善:
:# 最適化されたバイナリのデバッグ情報が大幅に改善され、変数位置情報、行番号、ブレークポイント位置がより正確になりました。
:# DWARFセクションがデフォルトで圧縮されるようになりました。
:# デバッガー内からのGo関数呼び出しが実験的にサポートされました。
; ランタイムの改善:
:# スパースヒープレイアウトの採用により、Goヒープサイズの制限(従来は512GiB)が撤廃されました。
:# macOSとiOSで、カーネルの直接呼び出しの代わりにlibSystem.dylibを使用するように変更され、将来のOSバージョンとの互換性が向上しました。
; 標準ライブラリの改善:
:# <code>crypto/cipher</code>パッケージに、非標準のタグ長をサポートするGCM実装が追加されました。
:# <code>net/http</code>の<code>Transport</code>型に、ホストごとの最大接続数を制限する<code>MaxConnsPerHost</code>オプションが追加されました。
:# <code>os</code>パッケージに、ユーザー固有のキャッシュディレクトリを取得する<code>UserCacheDir</code>関数が追加されました。
; ツールの改善:
:# 環境変数<code>GOFLAGS</code>が導入され、goコマンドのデフォルトフラグを設定できるようになりました。
:# godocのWebサーバーが、APIの新機能がどのGoバージョンで導入されたかを表示するようになりました。
また、OpenBSD 6.2以降、macOS 10.10 Yosemite以降、またはWindows 7以降が必要となり、これらのOSの以前のバージョンのサポートが終了しました。リリースノートでは、Go 1の互換性は維持されており、ほとんどのGoプログラムは以前と同様に動作すると述べられています。
==脚註 ==
<references />
== 参考文献 ==
*{{cite book
| url = https://go.dev/ref/spec
| title = The Go Programming Language Specification
| date = JJune 13, 2024
| publisher = The Go website
}}
== 外部リンク ==
{{Wikipedia|Go (プログラミング言語)|Go}}
{{Wikiversity|Topic:Go|Go}}
* [https://go.dev/ The Go Programming Language] - 公式サイト
* [https://go.dev/play/ The Go Playground]
{{DEFAULTSORT:GO}}
[[Category:Go|*]]
[[Category:プログラミング言語]]
{{NDC|007.64}}
bsap03pfkei74y836m08kxy6eiv70yj
263400
263398
2024-11-12T22:43:34Z
Ef3
694
/* バージョン間の変更点 */マークアップ修正
263400
wikitext
text/x-wiki
{{Pathnav|メインページ|工学|情報技術|プログラミング}}
Goは、Googleが開発したオープンソースの汎用プログラミング言語であり、システムプログラミングを主な目的として設計されています<ref name="Introduction">{{cite book
| url = https://go.dev/ref/spec#Introduction
| title = The Go Programming Language Specification Language version go1.23 (June 13, 2024)
| chapter = Introduction¶
| date = June 13, 2024
| publisher = The Go website
}}</ref>。
静的型付け言語であるため、高速で効率的なプログラムを作成することができ、また、並行処理を簡単に実装できるため、高い並行性を持ちます。
Goの文法はシンプルで読みやすく、効率的にコーディングできるため、開発者は迅速に新しいコードを書くことができます。
Goは自動的にメモリを管理するため、メモリ管理に関する手間を減らすことができます。
さらに、Windows、macOS、Linuxなど、多くのプラットフォームで動作し、標準ライブラリが豊富であり、多くの外部ライブラリが存在するため、広範な用途に対応することができます。
Goのコミュニティは活発であり、多くの開発者が参加しているため、質問や問題解決のためのリソースが豊富であり、新しい機能やライブラリが定期的にリリースされています。
この教科書では、初めてGoを学ぶ人から、より高度なトピックに興味のある人まで、幅広い読者を対象に、Goの基本から応用までを網羅的に解説します。
__TOC__
== 目次 ==
;チュートリアル篇
: [[/環境構築|環境構築]]
: [[/実行の方法|実行の方法]] {{---}} [[Go/実行の方法#Hello, World|Hello, World]]
: [[/文法の概要|文法の概要]]
: [[/変数|変数と型変換]]
: [[/算術演算と数学関数|算術演算と数学関数]]
: [[/条件分岐と繰り返し|条件分岐と繰り返し]] {{---}} if, switch, select, for, break, continue, return
: [[/関数|関数]]
: [[/メソッドとインターフェース|メソッドとインターフェース]]
: [[/ジェネリクス|ジェネリクス]]
: [[/再帰的関数呼出し|再帰的関数呼出し]]
: [[/メソッドチェイン|メソッドチェイン]]
: [[/defer,panicとrecover|defer, panicとrecover]]
: [[/並行処理|並行処理]]
: [[/配列とスライス|配列型とスライス型]]
: [[/マップ|マップ型]]
: [[/構造体|構造体型と構造体スライス]]
: [[/Goのプログラムがどんなアセンブリにコンパイルされるか?|Goのプログラムがどんなアセンブリにコンパイルされるか?]] {{---}} go tool objdump
: [[/クロスコンパイル|クロスコンパイル]] {{---}} GOOS, GOARCH
: [[/cgoでGoのコードからCの関数を利用する|cgoでGoのコードからCの関数を利用する]] {{---}} cgo
: [[/Goのコードでgoのバージョンを調べる方法|Goのコードでgoのバージョンを調べる方法]]
: [[/HTTP|HTTP]]
: [[/ファイル入出力|ファイル入出力]]
: [[/コードギャラリー|コードギャラリー]]
;リファレンス篇
: [[/ソースコードの表現方法|ソースコードの表現方法]]
: [[/キーワードと宣言済み識別子|キーワードと宣言済み識別子]] {{---}} [[/キーワードと宣言済み識別子#キーワード|キーワード]]・[[/キーワードと宣言済み識別子#宣言済み識別子|宣言済み識別子]]([[/キーワードと宣言済み識別子#組込み型|組込み型]]・[[/キーワードと宣言済み識別子#組込み関数|組込み関数]])
: [[/字句的要素|字句的要素]]
: [[/定数と変数|定数と変数]] {{---}} [[/定数と変数#定数|定数]]([[/定数と変数#iota|iota]])・[[/定数と変数#変数|変数]]
: [[/型|型]]
: [[/型と値の特性|型と値の特性]]
: [[/ブロック・宣言とスコープ|ブロック・宣言とスコープ]] {{---}} [[/ブロック・宣言とスコープ#ブロック|ブロック]]・[[/ブロック・宣言とスコープ#宣言とスコープ|宣言とスコープ]]
: [[/式|式]] {{---}} [[/式#演算子|演算子]]
: [[/文|文]]
: [[/パッケージ|パッケージ]]
: [[/プログラムの初期化と実行|プログラムの初期化と実行]]
: [[/エラー|エラー]]
: [[/EBNF|EBNF]]
;[[/標準ライブラリー|標準ライブラリー篇]]
== バージョン間の変更点 ==
Go は、約半年ごとに新しいバージョンがリリースされます。バージョンが変わると、言語仕様に追加変更があったり、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられることがあり、稀に既存のプログラムに影響が出ることもあります。以下に、最新のバージョンから順に変更点を記載します。
=== Go 1.23 ===
Go 1.23が、2024年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.23
| title = Go 1.23 Release Notes - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.23
| title = Go 1.23 is released! - The Go Programming Language
| date = 2024/08/13
| accessdate = 2024/11/13
}}</ref>。
Go 1.23のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.23 Go 1.23 is released! The Go Blog]}}
; 言語の変更点:
:# "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。
:# ジェネリック型エイリアスのプレビューサポートが追加されました(GOEXPERIMENT=aliastypeparamsを有効にする必要があります)。
; 新しい標準パッケージ:
:# uniqueパッケージ:値の正規化(インターン化やハッシュコンス化)を行うための機能を提供します。
:# iterパッケージ:ユーザー定義のイテレータ機能を提供します。
:# structsパッケージ:構造体のメモリレイアウトなどのプロパティを制御する機能を提供します。
; パフォーマンスの改善点:
:# Profile Guided Optimization (PGO)のビルドオーバーヘッドが大幅に削減されました。以前は100%以上の増加が見られましたが、今回のリリースでは一桁台のパーセンテージまで改善されています。
:# コンパイラがローカル変数のスタックフレームスロットを最適化し、関数内の異なる領域で重複して使用できるようになり、スタック使用量が削減されました。
; テレメトリーと開発者ツール:
:# Goツールチェーンが使用状況と問題点の統計情報を収集できるテレメトリー機能が追加されました(オプトイン方式)。
:# go vetコマンドにstdversionアナライザーが追加され、使用しているGoバージョンと互換性のないシンボルの参照を検出できるようになりました。
; プラットフォームサポートの変更:
:# macOSは11 (Big Sur)以降が必要になりました。
:# Linux kernelは2.6.32以降が必要です(Go 1.24では3.2以降になる予定)。
:# OpenBSDの64-bit RISC-Vサポートが試験的に追加されました。
また、time.TimerとTime.Tickerの実装が大幅に改善され、未使用のタイマーがガベージコレクションの対象となるようになりました。セキュリティ面では、TLSクライアントがEncrypted Client Helloをサポートし、3DESの暗号スイートがデフォルトリストから削除されるなどの改善が行われています。
=== Go 1.22 ===
Go 1.22が、2024年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.22
| title = Go 1.22 Release Notes - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.22
| title = Go 1.22 is released! - The Go Programming Language
| date = 2024/02/06
| accessdate = 2024/02/11
}}</ref>。
Go 1.22のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.22 Go 1.22 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.22 Go 1.22 is released! The Go Blog]}}
; 言語の変更点:
:# 長らく問題視されてきた「for」ループの変数スコープが変更されました。以前は変数が一度だけ作成され、各イテレーションで更新されていましたが、Go 1.22以降は各イテレーションで新しい変数が作成されるようになり、意図しない共有の問題が解消されました。
:# 整数の範囲に対する<code>range</code>のサポートが追加されました。例えば、<code>for i := range 10</code>のような構文が可能になりました。
; パフォーマンスの改善点:
:# ガベージコレクションのメタデータを各ヒープオブジェクトの近くに配置するように最適化されました。これにより、CPUパフォーマンスが1-3%向上し、ほとんどのGoプログラムのメモリオーバーヘッドが約1%削減されました。
:# コンパイラのプロファイル誘導最適化(PGO)が改善され、より多くのインターフェースメソッド呼び出しの仮想化解除が可能になりました。代表的なGoプログラムの多くで、PGOを有効にすることで2-14%のパフォーマンス向上が見られます。
:# コンパイラは仮想化解除とインライン化を交互に行うようになり、インターフェースメソッド呼び出しの最適化が向上しました。
; 標準ライブラリの追加と改善:
:# 標準ライブラリで初めてのv2パッケージとなる<code>math/rand/v2</code>が追加されました。新しいパッケージでは、ChaCha8とPCGという2つの現代的な疑似乱数生成器を提供し、より高速なアルゴリズムを採用しています。
:# <code>net/http.ServeMux</code>のHTTPルーティングがより表現力豊かになりました。メソッドとワイルドカードをサポートし、例えば"POST /items/create"や"/items/{id}"のようなパターンが使用可能になりました。
:# <code>database/sql</code>パッケージに<code>Null[T]</code>型が追加され、任意の型のnullableカラムをスキャンする機能が提供されます。
:# <code>go/version</code>パッケージが追加され、Goバージョン文字列の検証と比較機能が提供されます。
:# <code>slices</code>パッケージに複数のスライスを連結する<code>Concat</code>関数が追加されました。
; ツールの改善:
:# Goコマンドでワークスペースのvendorディレクトリがサポートされるようになりました。<code>go work vendor</code>でディレクトリを作成し、<code>-mod=vendor</code>フラグで使用できます。
:# トレースツールのWebUIが改良され、スレッド指向のビューでトレースを探索できるようになりました。また、すべてのシステムコールの完全な実行時間が表示されるようになりました。
:# <code>go vet</code>ツールに新しい警告が追加され、appendに値を渡し忘れた場合や、time.Since呼び出しの遅延に関する問題を検出できるようになりました。
また、macOSのx86-64アーキテクチャ(darwin/amd64)向けのGoツールチェーンが、デフォルトで位置独立実行形式(PIE)を生成するようになりました。Go 1.23以降はmacOS 11 Big Sur以降が必要になることも発表されています。
=== Go 1.21 ===
Go 1.21が、2023年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.21
| title = Go 1.21 Release Notes - The Go Programming Language
| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.21
| title = Go 1.21 is released! - The Go Programming Language
5| date = 2023/08/08
| accessdate = 2023-11-28
}}</ref>。
{{Main|[https://go.dev/doc/go1.21 Go 1.21 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.21 Go 1.21 is released! The Go Blog]}}
Go 1.21では、リリースの番号付けにわずかな変更が導入されました。Go 1.Nは、過去にGo言語のバージョン全体とリリースファミリー、およびそのファミリー内の最初のリリースを指すために使用されていました。しかし、Go 1.21から、最初のリリースはGo 1.N.0となりました。今日、Go 1.21言語とその初期実装であるGo 1.21.0リリースが公開されています。これらのノートは「Go 1.21」と呼ばれますが、go versionなどのツールは「go1.21.0」と報告されます(Go 1.21.1にアップグレードするまで)。
; ツールの改善点:
:# Profile Guided Optimization(PGO)機能が一般利用可能になりました。<code>default.pgo</code>という名前のファイルがメインパッケージのディレクトリにある場合、<code>go</code>コマンドはそれを使用してPGOビルドを有効にします。
:# <code>go</code>ツールは今後の言語の後方互換性と前方互換性をサポートします。
; 言語の変更点:
:# 新しい組み込み関数 <code>min</code>、<code>max</code>、<code>clear</code> が追加されました。
:# ジェネリック関数の型推論がいくつか改善され、仕様書の型推論の説明が拡張されました。
:# Goプログラミングの最も一般的な落とし穴の1つに取り組む予定で、そのプレビューがGo 1.21に含まれています。これは環境変数を使用してコードで有効にできます。詳細はLoopvarExperiment wikiページを参照してください。
;標準ライブラリの追加点:
:# 構造化ログのための新しいlog/slogパッケージが追加されました。
:# 任意の要素型のスライスに対する共通操作のための新しいslicesパッケージが追加されました。これには、一般的により高速で使いやすいソート関数も含まれています。
:# 任意のキーまたは要素型のマップに対する共通操作のための新しいmapsパッケージが追加されました。
:# 順序付けられた値を比較するための新しいユーティリティを提供するcmpパッケージが追加されました。
; 性能の改善点:
:# PGOを有効にした際のパフォーマンス向上に加えて、以下のような改善があります。
:# Goコンパイラ自体がPGOを有効にして再ビルドされ、ホストアーキテクチャによってはプログラムのビルドが2〜4%高速化されました。
:# ガベージコレクターの調整により、一部のアプリケーションではテールレイテンシーが最大40%削減される場合があります。
:# runtime/traceでトレースを収集する際のCPUコストが、amd64およびarm64で大幅に低減されました。
; 新しいWASIポート:
:# Go 1.21には、WebAssembly System Interface(WASI)の実験的なポートが追加されました(GOOS=wasip1、GOARCH=wasm)。
:# より一般的なWebAssembly(Wasm)コードの記述を容易にするために、コンパイラはWasmホストからの関数のインポートのための新しい指令 <code>go:wasmimport</code> をサポートしています。
=== Go 1.20 ===
Go 1.20が、2023年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.20
| title = Go 1.20 Release Notes - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.20
| title = Go 1.20 is released! - The Go Programming Language
| date = 2023/02/01
| accessdate = 2023-03-05
}}</ref>。
{{Main|[https://go.dev/doc/go1.20 Go 1.20 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.20 Go 1.20 is released! The Go Blog]}}
Go 1.20では、スライスから配列への変換が可能になりました。また、unsafeパッケージには新しい関数が追加され、スライスや文字列の値を構築および分解する完全な機能が提供されるようになりました。また、新しい仕様により、構造体のフィールドと配列の要素の比較が最初の不一致で停止するようになり、厳密に比較できない型引数を持つ型パラメータを使用して、比較制約に制限された型をインスタンス化することが可能になりました。
=== Go 1.19 ===
Go 1.19が、2022年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.19
| title = Go 1.19 Release Notes - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.19
| title = Go 1.19 is released! - The Go Programming Language
| date = 2022/08/02
| accessdate = 2022-08-04
}}</ref>。
{{Main|[https://go.dev/doc/go1.19 Go 1.19 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.19 Go 1.19 is released! The Go Blog]}}
Go 1.19では、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられています。言語にはわずかな修正があり、既存のプログラムには影響がないです。メモリモデルも更新され、C、C ++、Java、JavaScript、Rust、Swiftなどのメモリモデルに合わせられた。Go 1.19では、sync/atomicパッケージに新しい型が導入され、atomic.Int64やatomic.Pointer[T]などのatomic値をより簡単に使用できるようになっています。Go 1の互換性を維持しており、ほとんどのGoプログラムは引き続き従前どおりにコンパイルおよび実行されることが予想されます。
=== Go 1.18 ===
Go 1.18が、2022年3月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.18
| title = Go 1.18 Release Notes - The Go Programming Language
| date = 2022/03/10
| accessdate = 2022-08-04
}}</ref>。
{{Main|[https://go.dev/doc/go1.18 Go 1.18 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.18 Go 1.18 is released! The Go Blog]}}
Go 1.18 には、型パラメータプロポーザル<ref>{{cite book
| url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
| title=Type Parameters Proposal
| accessdate=2021-09-30
}}</ref>で説明されたジェネリック機能の実装が含まれています。
以下は、最も目に付く変更点のリストです。
# 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ [[/関数#ジェネリック関数]]
# パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。
# 新しいトークン <code>~</code> が演算子および区切子(punctuation)に追加されました。⇒ [[/字句的要素#演算子と区切子]]
# インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ [[/型#インターフェース型]]
# 新しい事前宣言された識別子<code>any</code>は空のインターフェースの別名です。これは <code>interface{} </code>の代わりに使用することができます。
# 新しい宣言済み識別子 <code>comparable</code> は <code>==</code> や <code>!=</code> を使って比較できる全ての型の集合を表すインターフェースです.
ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。
;golang.org/x/exp/constraints
:<code>constraints.Ordered</code>のようなジェネリックコードに便利な制約です。
;golang.org/x/exp/slices
:任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。
;golang.org/x/exp/maps
:任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。
----
Go 1.18は、言語、ツールチェーン、ランタイム、ライブラリに変更があり、互換性が保たれている。最大の変更点は、ジェネリックスの導入である。ジェネリックスはバックワード互換性があるが、実際に多くの人が書き、使用して初めて本番環境で十分にテストされる。ジェネリックスの使用は推奨されるが、本番環境で使用する場合は注意が必要である。ジェネリックスにはいくつかの制限があるが、これらは将来的に改善される可能性がある。これらの変更により、Goエコシステム全体に影響があり、完全なサポートには時間がかかるだろう。
=== Go 1.17 ===
Go 1.17が、2021年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.17
| title = Go 1.17 Release Notes - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.17
| title = Go 1.17 is released! - The Go Programming Language
| date = 2021/08/16
| accessdate = 2023-03-06
}}</ref>。
{{Main|[https://go.dev/doc/go1.17 Go 1.17 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.17 Go 1.17 is released! The Go Blog]}}
Go 1.17は、ツールチェーン、ランタイム、およびライブラリの実装の変更が中心で、ほとんどの変更は互換性が維持されています。言語自体には3つの小さな強化があり、スライスから配列ポインタへの変換、unsafe.Add、unsafe.Sliceが追加されました。このうち、スライスから配列ポインタへの変換が実行時にpanicを引き起こす場合があるため、タイプ変換が実行時にpanicを引き起こす可能性があることを考慮する必要があります。新しいプログラムを書く場合も、以前と同様に、unsafe.Pointerの安全ルールに従う必要があります。
=== Go 1.16 ===
Go 1.16が、2021年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.16
| title = Go 1.16 Release Notes - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.16
| title = Go 1.16 is released! - The Go Programming Language
| date = 2021/02/16
| accessdate = 2023-03-06
}}</ref>。
{{Main|[https://go.dev/doc/go1.16 Go 1.16 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.16 Go 1.16 is released! The Go Blog]}}
Go 1.16では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。
=== Go 1.15 ===
Go 1.15が、2020年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.15
| title = Go 1.15 Release Notes - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.15
| title = Go 1.15 is released! - The Go Programming Language
| date = 2020/08/11
| accessdate = 2023-03-12
}}</ref>。
{{Main|[https://go.dev/doc/go1.15 Go 1.15 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.15 Go 1.15 is released! The Go Blog]}}
Go 1.15では、リンカーの大幅な改良、高いコア数での小規模オブジェクトの割り当ての改善、X.509 CommonNameの非推奨化、そして新しい埋め込みtzdataパッケージの追加が含まれています。
=== Go 1.14 ===
Go 1.14が、2020年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.14
| title = Go 1.14 Release Notes - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.14
| title = Go 1.14 is released! - The Go Programming Language
| date = 2020/02/25
| accessdate = 2023-03-12
}}</ref>。
{{Main|[https://go.dev/doc/go1.14 Go 1.14 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.14 Go 1.14 is released! The Go Blog]}}
Go 1.14では、オーバーラップするインターフェースの提案により、埋め込まれたインターフェースで同じ名前とシグネチャを持つメソッドを許可するようになりました。しかし、インターフェース内で宣言されたメソッドは以前と同様にユニークである必要があります。
=== Go 1.13 ===
Go 1.13が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.13
| title = Go 1.13 Release Notes - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.13
| title = Go 1.13 is released! - The Go Programming Language
| date = 2019/09/03
| accessdate = 2023-03-12
}}</ref>。
{{Main|[https://go.dev/doc/go1.13 Go 1.13 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.13 Go 1.13 is released! The Go Blog]}}
Go 1.13では、数字リテラルの接頭辞が変更され、バイナリ整数、8進数整数、16進数浮動小数点数、虚数リテラル、数字区切りが使用できるようになりました。さらに、符号付きシフトカウントの制限が撤廃され、制限がなくなりました。これらの変更は、コンパイラの変更によって実現されました。Go 1.13を使用するには、go.modファイルで言語バージョンを指定する必要があります。
=== Go 1.12 ===
Go 1.12が、2019年2月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.12
| title = Go 1.12 Release Notes - The Go Programming Language
| date = 2019/02/25
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.12
| title = Go 1.12 is released! - The Go Programming Language
| date = 2019/02/25
| accessdate = 2024/11/13
}}</ref>。
Go 1.12のリリースには、いくつかの新機能と改善が含まれ、Go言語のパフォーマンスやユーザビリティがさらに向上しました。以下が主な変更点です。
{{Main|[https://go.dev/doc/go1.12 Go 1.12 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.12 Go 1.12 is released! The Go Blog]}}
; 主要な新機能:
:# Windows向けに、標準ライブラリがコントロールグループのサポートやシステムコールの改善により、性能向上と安定性が強化されました。
:# macOS向けの新しいサポートとして、ヒープメモリ使用量の削減や効率化が進められました。
; パフォーマンスの改善点:
:# 文字列操作の最適化が行われ、<code>strings.Trim</code>や<code>strings.Index</code>のパフォーマンスが向上しました。
:# 並列ガベージコレクションが改良され、メモリ管理の効率が向上しています。
:# コンパイラの境界チェックが一部のパターンで自動的に省略されるようになり、コード生成の効率がさらに向上しました。
; デバッグ機能の改善:
:# より正確な変数位置とスタック情報の提供により、デバッグ体験が改善されています。
:# 新たにDWARF生成の機能が拡充され、特に最適化コードにおいて、デバッグ情報の信頼性が高まりました。
; ランタイムの改善:
:# Windows上で、64ビットプロセスのアドレス空間使用が最適化され、より多くのメモリを使用可能になりました。
:# Goランタイムのシグナルハンドリングが強化され、システムシグナルの処理能力が向上しました。
; 標準ライブラリの改善:
:# <code>crypto/x509</code>パッケージで、証明書の検証がmacOSのシステム証明書ストアを使用するようになり、macOSでの信頼性が向上しました。
:# <code>net/http</code>において、HTTP/2の接続管理が改善され、特に大量接続環境での安定性が増しました。
:# <code>os</code>パッケージの<code>Process.Signal</code>がWindowsでも利用可能となり、Windows上のプロセス管理機能が強化されました。
; ツールの改善:
:# <code>go test</code>コマンドに<code>-json</code>フラグが追加され、テスト結果をJSON形式で出力できるようになりました。
:# goコマンドが<code>go.sum</code>ファイルを自動的に更新し、依存関係の信頼性が向上しています。
:# <code>gofmt</code>において、特定のコードパターンの整形が改良され、より一貫したコードスタイルが保たれます。
また、OpenBSD 6.4以降、macOS 10.11 El Capitan以降、またはWindows 7以降が必要となり、これらのOSの以前のバージョンのサポートが終了しました。リリースノートでは、Go 1の互換性は維持されており、ほとんどのGoプログラムは以前と同様に動作すると述べられています。
=== Go 1.11 ===
Go 1.11が、2018年8月にリリースされました<ref>{{cite book
| url = https://go.dev/doc/go1.11
| title = Go 1.11 Release Notes - The Go Programming Language
| date = 2018/08/24
| accessdate = 2024/11/13
}}</ref><ref>{{cite book
| url = https://go.dev/blog/go1.11
| title = Go 1.11 is released! - The Go Programming Language
| date = 2018/08/24
| accessdate = 2024/11/13
}}</ref>。
Go 1.11のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。
{{Main|[https://go.dev/doc/go1.11 Go 1.11 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.11 Go 1.11 is released! The Go Blog]}}
; 主要な新機能:
:# モジュールサポートの実験的な導入により、GOPATHに依存しない開発が可能になりました。バージョン管理と依存関係管理が統合され、より信頼性の高いビルドが実現できます。
:# WebAssembly(js/wasm)の実験的なポートが追加され、syscall/jsパッケージを通じてJavaScriptとの連携が可能になりました。
:# RISCVアーキテクチャ向けのGOARCH値("riscv"と"riscv64")が予約されました。
; パフォーマンスの改善点:
:# マップのクリア操作が最適化され、<code>for k := range m { delete(m, k) }</code>のようなコードが効率的に実行されるようになりました。
:# スライス拡張の<code>append(s, make([]T, n)...)</code>が最適化されました。
:# コンパイラの境界チェックと分岐除去が大幅に改善され、より効率的なコードが生成されるようになりました。
; デバッグ機能の改善:
:# 最適化されたバイナリのデバッグ情報が大幅に改善され、変数位置情報、行番号、ブレークポイント位置がより正確になりました。
:# DWARFセクションがデフォルトで圧縮されるようになりました。
:# デバッガー内からのGo関数呼び出しが実験的にサポートされました。
; ランタイムの改善:
:# スパースヒープレイアウトの採用により、Goヒープサイズの制限(従来は512GiB)が撤廃されました。
:# macOSとiOSで、カーネルの直接呼び出しの代わりにlibSystem.dylibを使用するように変更され、将来のOSバージョンとの互換性が向上しました。
; 標準ライブラリの改善:
:# <code>crypto/cipher</code>パッケージに、非標準のタグ長をサポートするGCM実装が追加されました。
:# <code>net/http</code>の<code>Transport</code>型に、ホストごとの最大接続数を制限する<code>MaxConnsPerHost</code>オプションが追加されました。
:# <code>os</code>パッケージに、ユーザー固有のキャッシュディレクトリを取得する<code>UserCacheDir</code>関数が追加されました。
; ツールの改善:
:# 環境変数<code>GOFLAGS</code>が導入され、goコマンドのデフォルトフラグを設定できるようになりました。
:# godocのWebサーバーが、APIの新機能がどのGoバージョンで導入されたかを表示するようになりました。
また、OpenBSD 6.2以降、macOS 10.10 Yosemite以降、またはWindows 7以降が必要となり、これらのOSの以前のバージョンのサポートが終了しました。リリースノートでは、Go 1の互換性は維持されており、ほとんどのGoプログラムは以前と同様に動作すると述べられています。
==脚註 ==
<references />
== 参考文献 ==
*{{cite book
| url = https://go.dev/ref/spec
| title = The Go Programming Language Specification
| date = JJune 13, 2024
| publisher = The Go website
}}
== 外部リンク ==
{{Wikipedia|Go (プログラミング言語)|Go}}
{{Wikiversity|Topic:Go|Go}}
* [https://go.dev/ The Go Programming Language] - 公式サイト
* [https://go.dev/play/ The Go Playground]
{{DEFAULTSORT:GO}}
[[Category:Go|*]]
[[Category:プログラミング言語]]
{{NDC|007.64}}
brrhx6ulb8saphz8nivpco3h6vgx543
Go/算術演算と数学関数
0
28507
263401
261907
2024-11-12T23:02:37Z
Ef3
694
{{DEFAULTSORT:さんしよつえんさんとすうかくかんすう}} [[Category:Go]]
263401
wikitext
text/x-wiki
{{Nav}}
Go言語における算術演算と数学関数について、基本的な使い方と注意点、そしてコード例を用いて解説します。
== 算術演算 ==
Go言語では、他のプログラミング言語と同様に、四則演算(加減乗除)と剰余演算(%)が可能です。また、Goは型安全であり、異なる型間の暗黙的な型変換は行いません。
; 数値の型
:* '''整数型:''' <code>int</code>, <code>uint</code>, <code>int8</code>, <code>uint8</code>, <code>int16</code>, <code>uint16</code>, <code>int32</code>, <code>uint32</code>, <code>int64</code>, <code>uint64</code>
:* '''浮動小数点型:''' <code>float32</code>, <code>float64</code>
:* '''複素数型:''' <code>complex64</code>, <code>complex128</code>
; 数値リテラルの例
:<syntaxhighlight lang=go copy>
5 // int型
3.14 // float64型
</syntaxhighlight>
; 演算の例
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
// 整数間の演算
fmt.Println(5 + 3) // 出力: 8
fmt.Println(5 - 3) // 出力: 2
fmt.Println(5 * 3) // 出力: 15
fmt.Println(5 / 3) // 出力: 1 (整数同士の除算は切り捨て)
fmt.Println(5 % 3) // 出力: 2
// 浮動小数点数の演算
fmt.Println(5.0 / 3.0) // 出力: 1.6666666666666667
}
</syntaxhighlight>
; 型の違いによる演算
:* '''数値リテラル:''' 片方が浮動小数点数の場合、もう片方も浮動小数点数に暗黙的に変換されます。
:* '''変数:''' 変数の型が異なる場合は、明示的な型変換が必要になります。
'''注意:''' 整数同士の除算は小数点以下を切り捨てた結果になります。浮動小数点数を含む場合のみ、実数として計算されます。
== 数学関数 ==
Go言語では、<code>math</code>パッケージで様々な数学関数が提供されています。これにより、平方根や指数関数、対数、三角関数などが簡単に使用できます。
; 三角関数
:<syntaxhighlight lang=go copy>
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Cos(math.Pi)) // 出力: -1
fmt.Println(math.Sin(math.Pi / 2)) // 出力: 1
}
</syntaxhighlight>
; 注意:
:* <code>math</code>パッケージの関数は、引数と戻り値の型が <code>float64</code> です。整数を直接渡すとコンパイルエラーになるため、適切に型変換する必要があります。
:* 三角関数の角度はラジアンで指定します。度を使用する場合は変換が必要です (例: 角度 * <code>math.Pi</code> / 180)。
; その他の関数
:* <code>math.Sqrt</code>: 平方根
:* <code>math.Pow</code>: 累乗
:* <code>math.Exp</code>: 指数関数 (eのx乗)
:* <code>math.Log</code>: 自然対数
:* <code>math.Log10</code>: 常用対数
:* <code>math.Abs</code>: 絶対値
:* <code>math.Round</code>, <code>math.Floor</code>, <code>math.Ceil</code>: 丸め処理
; 例
:<syntaxhighlight lang=go copy>
package main
import (
"fmt"
"math"
)
func main() {
a := 9.0
fmt.Println("Square root:", math.Sqrt(a)) // 平方根: 3
fmt.Println("Power:", math.Pow(2, 3)) // 累乗: 8
fmt.Println("Absolute:", math.Abs(-5)) // 絶対値: 5
}
</syntaxhighlight>
{{See also|[[https://pkg.go.dev/math]]}}
== まとめ ==
* Go言語の算術演算は、他の言語と同様ですが、型の扱いには注意が必要です。
* <code>math</code>パッケージを利用することで、様々な数学関数を手軽に利用できます。特に、ラジアン表記や浮動小数点型である点に注意してください。
{{DEFAULTSORT:さんしよつえんさんとすうかくかんすう}}
[[Category:Go]]
9urfdfo18ph2d1o9xqo9pbnnmw72k3t
Go/実行の方法
0
28509
263402
263245
2024-11-12T23:06:03Z
Ef3
694
マークアップ修正
263402
wikitext
text/x-wiki
{{Nav}}
= 実行の方法 =
この章ではGo言語におけるオンライン実行環境とコンパイルと実行の方法について説明します。
== オンライン実行環境 ==
Go言語には、「The Go Playground」というWebサイトがあります。このサイトでは、ブラウザ上でGoコードを書いて実行結果を確認することができます。
; 利用手順
:# 「[https://go.dev/play/ The Go Playground]」のサイトにアクセスします。
:# 左側のエディターにGoコードを入力します。
:# 右側の画面には、実行結果が表示されます。
「The Go Playground」では、以下の機能が提供されています:
* 実行速度の計測
* ファイルのダウンロード
* 共有URLの生成
ただし、オンライン実行環境では外部ライブラリの使用や実行時間制限があるため、本格的な開発には向きません。
; Hello, World の例
; [https://go.dev/play/p/X0_wfzwyj-E hello.go]
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
</syntaxhighlight>
== コンパイルと実行 ==
Go言語のプログラムは、コンパイルして実行ファイルを作成することで実行します。以下の方法でコンパイルと実行ができます。
; コマンドラインでコンパイルして実行する
Go言語のコンパイルは、コマンドライン上で行います。以下のコマンドを実行することで、実行ファイルを作成できます。
:<syntaxhighlight lang=shell-session>
$ go build <プログラムファイル>
</syntaxhighlight>
実行ファイルが生成されると、以下のコマンドで実行できます。
:<syntaxhighlight lang=shell-session>
$ ./<実行ファイル>
</syntaxhighlight>
例えば、<code>hello.go</code>というファイルをコンパイルして実行する場合は、以下のようになります。
:<syntaxhighlight lang=shell-session>
$ go build hello.go
$ ./hello
</syntaxhighlight>
; コマンドラインで直接実行する
Go言語のプログラムは、直接実行することもできます。以下のコマンドを実行することで、プログラムを直接実行できます。
:<syntaxhighlight lang=shell-session>
$ go run <プログラムファイル>
</syntaxhighlight>
例えば、<code>hello.go</code>というファイルを直接実行する場合は、以下のようになります。
:<syntaxhighlight lang=shell-session>
$ go run hello.go
</syntaxhighlight>
== 脚註 ==
<references />
{{Nav}}
{{DEFAULTSORT:しつこうのほうほう}}
[[Category:Go]]
c0plq10laoewwhspq56wr6pjesnrv6z
Go/文法の概要
0
28510
263403
260488
2024-11-12T23:23:54Z
Ef3
694
校閲と推敲
263403
wikitext
text/x-wiki
{{Nav}}
= Go言語文法の概要 =
== Hello World ==
;[https://paiza.io/projects/GfcBh0hMYX1nrXOk45L2_g?language=go コード例]:<syntaxhighlight lang="go" line>
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
</syntaxhighlight>
== ソースファイルの構造 ==
Goのソースファイルは次のような構造を持ちます。
* <code>package</code> 文: ファイルの先頭に記述します。
* <code>import</code> 文: <code>package</code> 文の直後に配置し、必要なパッケージをインポートします。複数のインポートは括弧でまとめることができます。
* 関数やその他のコード: <code>import</code> 文の後に配置します。
;コード例:<syntaxhighlight lang="go">
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Hello, Go!")
os.Exit(0)
}
</syntaxhighlight>
== エントリーポイント ==
Goのエントリーポイントは、<code>main</code> パッケージ内の <code>main</code> 関数です。この関数がプログラムの実行を開始します。
== 関数 ==
関数は再利用可能なコードのブロックです。Goの関数は<code>func</code> キーワードで定義されます。
;[https://play.golang.org/p/K3NPx1Bbnsa 関数の例]:<syntaxhighlight lang="go" highlight="9" line>
package main
import "fmt"
func main() {
fmt.Println(subr(3, 2))
}
func subr(x, y int) (int, int) {
return x + y, x - y
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
5 1
</syntaxhighlight>
;解説:
:<var>x</var> と <var>y</var> はint型の仮パラメータで、戻り値もそれぞれint型です。関数<code>subr</code>はパッケージ内での依存関係が自動的に解決されるため、呼び出し順にかかわらず機能します。
== 変数 ==
Goは静的型付け言語であり、変数は宣言が必須です。主な特徴は以下の通りです:
* <code>var</code> キーワードでの宣言、または短縮形 <code>:=</code> を使用可能。
* 型は明示的に指定するか、型推論により自動設定されます。
* 未初期化の変数はゼロ値が代入されます。
* 変数スコープは宣言位置に依存し、関数外で宣言するとパッケージレベル変数になります。
;[https://play.golang.org/p/azt6UNdI79c 例]:<syntaxhighlight lang="go" highlight="5,6,7,10" line>
package main
import "fmt"
var i int
var j int = 42
var k = 69
func main() {
a := 2.0
fmt.Println(i, j, k, a)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
0 42 69 2
</syntaxhighlight>
;解説:
:<code>var</code> による変数宣言は、型を指定する場合と型推論を利用する場合があります。
== 定数 ==
定数は変更不可能な値で、宣言時に初期化する必要があります。
;[https://play.golang.org/p/jYUBq2RQ-KS 例]:<syntaxhighlight lang="go" line>
package main
import "fmt"
const j int = 42
const k = 69
const (
zero = iota
one
two
three
_
five
)
func main() {
fmt.Println(j, k)
fmt.Println(zero, one, two, three, five)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
42 69
0 1 2 3 5
</syntaxhighlight>
;解説:
:<code>iota</code> は連続した値を簡潔に定義するための組み込み機能で、未使用の定数にはブランク識別子 <code>_</code> を利用します。
== データ型 ==
Goでは、変数や関数の戻り値、関数のパラメータなどに対して型を指定する必要があります。
以下に、Goで利用できる主要なデータ型を紹介します。
:<syntaxhighlight lang=go line>
// 基本データ型: //
// 整数型 (int): 符号付き整数。例: int, int8, int16, int32, int64.
var age int
age = 25
// 符号なし整数型 (uint): 符号なし整数。例: uint, uint8, uint16, uint32, uint64.
var count uint
count = 10
// 浮動小数点型 (float): 浮動小数点数。例: float32, float64.
var price float64
price = 3.14
// 論理型 (bool): 真偽値。true または false のいずれか。
var isOpen bool
isOpen = true
// 文字列型 (string): 文字列。
var message string
message = "Hello, Go!"
// 複合データ型: //
// 配列 (Array): 固定長の同じ型の要素を保持するデータ構造。
var numbers [3]int
numbers = [3]int{1, 2, 3}
// スライス (Slice): 動的なサイズの配列。配列よりも柔軟。
var fruits []string
fruits = []string{"apple", "banana", "orange"}
// マップ (Map): キーと値のペアを保持するデータ構造。
var ages map[string]int
ages = map[string]int{"Alice": 25, "Bob": 30}
// 構造体 (Struct): 異なる型のフィールドを組み合わせて定義されたデータ構造。
type Person struct {
Name string
Age int
}
var p Person
p.Name = "Alice"
p.Age = 25
// その他: //
// ポインタ (Pointer): メモリ上のアドレスを保持する変数。
var x int
var ptr *int
ptr = &x
// 関数型 (Function): 関数を変数に代入したり、関数を返すことができる。
var add func(int, int) int
add = func(a, b int) int {
return a + b
}
</syntaxhighlight>
=== 型推論 ===
Goでは、型推論がサポートされており、変数の型をコンパイラが自動的に推測することができます。型推論を使用すると、冗長な型宣言を省略し、コードを簡潔にすることができます。
ただし、パッケージのトップレベルの変数では型推論出来ません。
以下は型推論の例です:
:<syntaxhighlight lang=go line>
// 基本データ型: //
// 整数型 (int): 符号付き整数。例: int, int8, int16, int32, int64.
age := 25
// 符号なし整数型 (uint): 符号なし整数。例: uint, uint8, uint16, uint32, uint64.
count := uint(10)
// 浮動小数点型 (float): 浮動小数点数。例: float32, float64.
price := 3.14
// 論理型 (bool): 真偽値。true または false のいずれか。
isOpen := true
// 文字列型 (string): 文字列。
message := "Hello, Go!"
// 複合データ型: //
// 配列 (Array): 固定長の同じ型の要素を保持するデータ構造。
numbers := [3]int{1, 2, 3}
// スライス (Slice): 動的なサイズの配列。配列よりも柔軟。
fruits := []string{"apple", "banana", "orange"}
// マップ (Map): キーと値のペアを保持するデータ構造。
ages := map[string]int{"Alice": 25, "Bob": 30}
// 構造体 (Struct): 異なる型のフィールドを組み合わせて定義されたデータ構造。
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 25}
// その他: //
// ポインタ (Pointer): メモリ上のアドレスを保持する変数。
x := 0
ptr := &x
// 関数型 (Function): 関数を変数に代入したり、関数を返すことができる。
add := func(a, b int) int {
return a + b
}
</syntaxhighlight>
上記のコードでは、変数の型を明示的に宣言せずに、初期値から型が推論されています。型推論を利用することで、冗長な型宣言を省略し、コードの記述量を減らすことができます。
== グループ化 ==
{{code|import}}, {{code|var}}, {{code|const}} の宣言は {{code|(}} {{code|)}} でグループ化できます。
;[https://play.golang.org/p/mX5TOG1ZOF- 例]:<syntaxhighlight lang="go" line>
package main
import (
"fmt"
"math"
)
var (
f float64
i int
)
const (
PI_2 = math.Pi / 2
PI_4 = math.Pi / 4
)
func main() {
fmt.Println(f, i, PI_2, PI_4)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
0 0 1.5707963267948966 0.7853981633974483
</syntaxhighlight>
== 演算子 ==
Go言語には、以下のような演算子があります。
* 算術演算子: <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code>
* 比較演算子: <code>==</code>, <code>!=</code>, <code><</code>, <code><=</code>, <code>></code>, <code>>=</code>
* 論理演算子: <code>&&</code>, <code>||</code>, <code>!</code>
* ビット演算子: <code>&</code>, <code>|</code>, <code>^</code>, <code><<</code>, <code>>></code>, <code>&^</code>
* 代入演算子: <code>=</code>, <code>+=</code>, <code>-=</code>, <code>*=</code>, <code>/=</code>, <code>%=</code>, <code><<=</code>, <code>>>=</code>, <code>&=</code>, <code>|=</code>, <code>^=</code>, <code>&^=</code>
算術演算子は、数値型の値の加算、減算、乗算、除算、剰余を行います。 比較演算子は、二つの値の比較を行い、真偽値を返します。 論理演算子は、論理値のAND、OR、NOT演算を行います。 ビット演算子は、整数型の値のビット毎のAND、OR、XOR、左シフト、右シフト、ビットクリア演算を行います。 代入演算子は、左辺の変数に右辺の値を代入し、その後演算を行います。
また、Goには以下のような演算子もあります。
* アドレス演算子: <code>&</code>
* ポインタ演算子: <code>*</code>
* 参照演算子: <code>.</code>
アドレス演算子は、変数のアドレスを取得します。 ポインタ演算子は、ポインタの指す先の値を参照します。 参照演算子は、構造体やインターフェイスのメンバーにアクセスするために使用します。
これらの演算子を組み合わせることで、複雑な演算が可能になります。
;[https://play.golang.org/p/EPK8h9q9qVK 演算子の例]:<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
a, b, c := 42, 12, 3
t, f := true, false
/* 単項演算子 */
fmt.Println(+c) // 単項プラス
fmt.Println(-c) // 単項マイナス
fmt.Println(^c) // ビット反転(C言語系の ~ ではなく ^)
fmt.Println(!t) // 論理否定
/* 二項演算子 */
fmt.Println(a * b) // 乗算
fmt.Println(a / b) // 除算
fmt.Println(a % b) // 剰余
fmt.Println(a << c) // 左シフト
fmt.Println(a >> c) // 右シフト
fmt.Println(a & c) // ビットごとの論理積
fmt.Println(a &^ c) // ビットクリア( &^ でトークン)
fmt.Println(a & ^c) // ビットクリア(これとおなじ)
fmt.Println(a + c) // 加算
fmt.Println(a - c) // 減算
fmt.Println(a | c) // ビットごとの論理和
fmt.Println(a ^ c) // ビットごとの排他的論理和
fmt.Println(a == b) // 一致
fmt.Println(a != b) // 不一致
fmt.Println(a < b) // より小
fmt.Println(a <= b) // より小または一致
fmt.Println(a > b) // より大
fmt.Println(a >= b) // より大または一致
fmt.Println(t && f) // 論理積(短絡評価あり)
fmt.Println(t || f) // 論理和(短絡評価あり)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
3
-3
-4
false
504
3
6
336
5
2
40
40
45
39
43
41
false
true
false
false
true
true
false
true
</syntaxhighlight>
* [[#代入|代入]]は、演算子ではなく文です。
* インクリメントおよびデクリメントは、演算子ではなく文です。
* Goには三項演算子(条件演算子; 式 ? 値1 : 値2 )はありません。
* 冪乗演算子もないので、Goでは結合方向(同じ優先度の二項演算子が続いた場合の評価順序)は左からです。
== 代入 ==
Goの構文要素には文・式・演算子があり、代入は文に分類されます。C言語系の言語では代入は式に分類されますが、Goでは異なります。
代入が文であることにより、{{code|1=a = b = 42;}} の様な代入はできず、if文などの構造構文の条件式で代入はできません。
このことで、右結合であるか左結合であるかへの配慮を必要とする状況を劇的に少なくなりました。
;[https://play.golang.org/p/VZxaH9yQ3qJ 代入の例]:<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
x, y := 42, 123 // 2つの変数を宣言し型なしの定数で初期化
fmt.Println("x =", x)
fmt.Println("y =", y)
// x = y = 10 ・・・ Go では(代入は文なので)は構文エラー
x, y = y, x // Go では多重代入が可能
fmt.Println("x =", x)
fmt.Println("y =", y)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
x = 42
y = 123
x = 123
y = 42
</syntaxhighlight>
;解説
:このコードでは、2つの変数 <code>x</code> と <code>y</code> を宣言して、それぞれを <code>42</code> と <code>123</code> で初期化します。<code>:=</code>演算子を使用して宣言された変数は型が自動的に決定され、Goの仕様に基づいて、初期値から型が推論されます。 <code>fmt.Println</code>関数を使用して、<code>x</code>と<code>y</code>の値を出力します。
:次に、変数 <code>x</code>と<code>y</code>の値を交換するために、<code>x, y = y, x</code> を実行します。この多重代入文では、右側の値の評価が左側の変数に対して代入されます。つまり、<code>y</code>の値が<code>x</code>に代入され、<code>x</code>の値が<code>y</code>に代入されます。このような多重代入は、一時変数を使用せずに値を交換するために便利です。
:最後に、交換後の<code>x</code>と<code>y</code>の値を再度出力します。
== インクリメント・デクリメント ==
C言語系のプログラムには、n++ という構文があります。これは、変数nに1を足すことを表します。C言語系の言語では、この構文は式として扱われますが、Go言語では文として扱われます。
Go言語のインクリメント文は、後置インクリメントのみが存在します。これは、変数に1を足すことを意味します。式ではないため、インクリメントと値の参照の順序について心配する必要はありません。
Go言語でインクリメントを行う方法は、C言語系のプログラムと似ていますが、細かい点では異なる点があります。これらの違いを理解して、Go言語を使用する際には注意してコードを書く必要があります。
;[https://play.golang.org/p/x90ntiwmUrs インクリメント・デクリメントの例]:<syntaxhighlight lang="go">
package main
import "fmt"
func main() {
x, y := 42, 123 // 2つの変数を宣言し型なしの定数で初期化
fmt.Println("x =", x)
fmt.Println("y =", y)
// x = y++ ・・・ Go ではインクリメントは文なので構文エラー
x++
// ++y インクリメントは後置のみ
y--
fmt.Println("x =", x)
fmt.Println("y =", y)
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
x = 42
y = 123
x = 43
y = 122
</syntaxhighlight>
== 構造構文 ==
=== 選択文 ===
'''選択文'''には、[[Go/文#If文|if文]]と[[Go/文#Switch文|switch文]]と[[Go/文#Select文|select文]]があります。
==== if文 ====
これだけだと「C言語と同じアレか」と思われるでしょうが、Goでは、
;if文:<syntaxhighlight lang="go">
if x > max {
max = x
}
</syntaxhighlight>
のように条件式を囲むカッコが要らず { } が必須です(擬似コードではなく、動くプログラムの一部です)。また、
;if文スコープの変数:<syntaxhighlight lang="go">
if x := f(); x < y {
return -1
} else if x > y {
return +1
} else {
return 0
}
</syntaxhighlight>
のように、条件式の前に「単純な文」を置くことができ、とりわけ上の例のように「短い変数宣言」で宣言された変数はif文スコープになります。
{{コラム|懸垂else問題|2=
C言語のような、if分に(ブロック { ... } だけではなく)単文を許す言語では
:<syntaxhighlight lang=C>
if (a)
if (b)
x();
else // ← 懸垂else
y();
</syntaxhighlight>
:は、実際には
:<syntaxhighlight lang=C>
if (a) {
if (b) {
x();
} else {
y();
}
}
</syntaxhighlight>
とelseは最寄りのifと結合します。
Goでは、{ … } を必須とし懸垂else問題を回避し、if文スコープの変数と単文の組合わせの座りの悪さ<ref>C++のAT&T2.0ではfor文で宣言された変数のスコープはfor文の外でしたがANSIC++ではfor文の中になりました。それはそれで問題ないのですが、for文の本体は複文だけでなく短文も許すので一見するとスコープがわかりにくいと不評です。for文で変数を宣言できる仕様はC言語にもそのままバックポートされたので、現在ではC言語のfor文もスコープ(とシャドーイング)に注意が必要です。Goのfor文はif文同様 { … } が必須なのでfor文×短文のややこしさはありません。</ref>を回避するとともに、"if" と "{" に条件式(とオプショナルな単純な文)があると決め打ちできるので構文解析の簡素化に役立っています。
}}
==== switch文 ====
;switch文:<syntaxhighlight lang="go" line>
switch oct {
default: error()
case 0, 2, 4, 6: even()
case 1, 3, 5, 7: odd()
}
switch x := f(); { // 条件式は省略されると true とみなす。この場合 ; は必須。
case x < 0: return -x
default: return x
}
switch {
case x < y: lt()
case x > y: gt()
case x == y: eq()
}
</syntaxhighlight>
: C言語と異なり、case節の式は定数式でなくても構いません。
: if文と同じ様に条件式のカッコは不要で、条件式の前に「単純な文」を書けます(必須ではありません)。
: 条件式は省略可能で、省略すると true が仮定されます。
: また [[Go/文#Break文|break]] するのが標準動作で、次のcase節に対応する文に処理を継続する場合は、[[Go/文#Fallthrough文|fallthrough文]] を使います。
=== 反復文 ===
Goの'''反復文'''はfor文だけです。これもC言語とは異なる文法で
;for文:<syntaxhighlight lang="go">
for a < b { // C言語の while文 に相当しますが、やはり条件式にカッコは不要です
a *= 2
}
for i := 0; i < 10; i++ { // ここでも :=を使った短い変数宣言
f(i)
}
for { // C言語の for (;;) あるいは while(1) ⇒ 無限ループ
f2(i)
}
var a [10]string
for i, s := range a { // range句は Go独特
// i の型は int
// s の型は string
// s == a[i]
g(i, s)
}
for _, s := range a { // range句は Go独特
// インデックスが不要なら、 _ に置きかえる
// s の型は string
// s == a[i]
h(s)
}
</syntaxhighlight>
: rangeは、stringの他、配列・スライス・マップ・チャンネルとも組合わせることができます。
== 小まとめ ==
このように、Goの構文や意味論はC言語やC++、あるいはJavaとは大きく異なるため、ユーザーには事前にC言語などの知識が必要ありません。逆に、C言語ファミリーのプログラマーは、同じキーワードが別の意味を持つことが多く、常にその違いを意識する必要があるため、転換教育には頭の切り替えが必要です。
一方、JavaScriptなどのスクリプト言語の経験者は、自動的にセミコロンが挿入されるなど、馴染みの深い文法機能に親近感を持つかもしれません(JSからC/C++への転換教育では、このような機能が1つの大きなハードルになることがあります)。
構文は異なるものの、制約のある文法という点では、PythonとGoは近いものがあります。
;else節を伴ったif文:<syntaxhighlight lang="go" highlight=3 line>
if x < 0 {
fmt.Println("マイナス")
} else {
fmt.Println("プラス")
}
</syntaxhighlight>
は
;elseの前では改行できない:<syntaxhighlight lang="go" highlight="3-4" line>
if x < 0 {
fmt.Println("マイナス")
}
else {
fmt.Println("プラス")
}
</syntaxhighlight>
: とelseの前で改行すると
:<syntaxhighlight lang=text>
./prog.go:11:3: syntax error: unexpected else, expecting }
</syntaxhighlight>
: の様に文法的に違法となります(改行すると、; が自動挿入されます)。
: また if の行末の { の前も改行不能です(改行すると、やはり ; が自動挿入されます)。
また、Goには三項演算子 <syntaxhighlight lang=c inline> a ? b : c </syntaxhighlight> もありません。
このように、同じロジックを書くと大きな差異を生じないよう慎重に言語設計がなされています。
== クラスはないがメソッドはある ==
Go言語には、オブジェクト指向言語におけるクラス概念がありませんが、型に対してメソッドを定義することができます。具体的には、構造体を定義してその構造体に関数を紐付けることで、メソッドを定義することができます。
つぎの例では、 Abs メソッドは cmplx という名前の Complex 型のレシーバを持つことを意味しています。
;[https://go.dev/play/p/KuB3DbtVPIO メソッドの例]:<syntaxhighlight lang=go>
// main パッケージは Go メソッドをデモンストレーションするためのシンプルな例を提供します。
package main
import (
"fmt"
"math"
)
// Complex は実部と虚部を持つ複素数を表す構造体です。
type Complex struct {
Real, Imag float64
}
// Abs は複素数の絶対値(大きさ)を返します。
func (c Complex) Abs() float64 {
return math.Hypot(c.Real, c.Imag)
}
func main() {
// Complex 構造体を使った例
c := Complex{3, 4}
fmt.Println(c.Abs()) // 絶対値を表示します。
}
</syntaxhighlight>
また、Goはインターフェース型を持ちます。インターフェース型はインターフェース (interface) と呼ばれるメソッド集合を指定する機能で、クラス階層における継承の機能を受け持ちます(アプローチは全く異なります)。<!-- Unixのディバイスドライバーの先頭にあるテーブルを彷彿とさせます。-->
また、入れ子の構造体の入れ子側の構造体(埋め込み構造体)のフィールドは、埋め込み親のフィールドの構文で参照できるので、継承的な使い勝手を提供します。
インターフェースの例として、以下のような <code>Shape</code> インターフェースを定義し、<code>Rectangle</code> 構造体と <code>Circle</code> 構造体に <code>Shape</code> インターフェースを実装する例を示します。
:<syntaxhighlight lang=go>
package main
import (
"fmt"
"math"
)
// Shape インターフェースは、面積と周囲長を計算するメソッドを持つ図形を表します。
type Shape interface {
Area() float64 // 面積を計算するメソッド
Perimeter() float64 // 周囲長を計算するメソッド
}
// Rectangle 構造体は、幅と高さを持つ長方形を表します。
type Rectangle struct {
Width, Height float64 // 幅と高さ
}
// Area メソッドは、長方形の面積を計算します。
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
// Perimeter メソッドは、長方形の周囲長を計算します。
func (r Rectangle) Perimeter() float64 {
return 2*r.Width + 2*r.Height
}
// Circle 構造体は、半径を持つ円を表します。
type Circle struct {
Radius float64 // 半径
}
// Area メソッドは、円の面積を計算します。
func (c Circle) Area() float64 {
return math.Pi * c.Radius * c.Radius
}
// Perimeter メソッドは、円の周囲長を計算します。
func (c Circle) Perimeter() float64 {
return 2 * math.Pi * c.Radius
}
func main() {
r := Rectangle{Width: 3, Height: 4}
c := Circle{Radius: 5}
shapes := []Shape{r, c}
for _, shape := range shapes {
fmt.Printf("Area: %f, Perimeter: %f\n", shape.Area(), shape.Perimeter())
}
}
</syntaxhighlight>
また、埋め込み構造体の例として、以下のような <code>Person</code> 構造体と <code>Employee</code> 構造体を定義し、<code>Employee</code> 構造体に <code>Person</code> 構造体を埋め込む例を示します。
:<syntaxhighlight lang=go>
package main
import "fmt"
// Person は人を表す構造体です。
type Person struct {
Name string // 名前
Age int // 年齢
}
// Introduce は自己紹介するメソッドです。
func (p Person) Introduce() {
fmt.Printf("My name is %s, and I'm %d years old.\n", p.Name, p.Age)
}
// Employee は従業員を表す構造体です。
type Employee struct {
Person // 埋め込みにより、Person型のフィールドが継承されます。
Department string // 部署
}
func main() {
// Employee型の変数を初期化します。
e := Employee{Person{Name: "Alice", Age: 25}, "Sales"}
// 自己紹介をします。
e.Introduce()
// 部署名を表示します。
fmt.Printf("I work in the %s department.\n", e.Department)
}
</syntaxhighlight>
<code>Employee</code> 構造体に <code>Person</code> 構造体を埋め込むことで、<code>Employee</code> 構造体は <code>Person</code> 構造体のフィールドにアクセスできるようになります。<code>Introduce</code> メソッドは <code>Person</code> 構造体のメソッドであるため、<code>Employee</code> 構造体でも使用できます。
<!-- Goの設計を行っているロブ・パイクとケン・トンプソンは、Unix/C/C++の総本山ベル研究所の出身であるにもかかわらず、C++どころかC言語とも違う構文を採用したのは興味深いです。-->
== 型パラメータ ==
型パラメータ(Type Parameter)は、プログラムで使われる型を抽象化し、柔軟性をもたせるための概念です。型パラメータを使用することで、特定の型に依存しない、汎用的なコードを記述することができます。これにより、同じロジックを異なる型に対して再利用できるようになります。
具体的なプログラミング言語やコンセプトによっては、ジェネリクス(Generics)や型引数(Type Arguments)とも呼ばれることがあります。Go言語では、ジェネリクスのサポートが追加され、その際に型パラメータの概念が導入されました。
型パラメータを使用して、任意の数型を複素数にできるように修正した例を以下に示します。
:<syntaxhighlight lang=go>
// main パッケージは Go メソッドをデモンストレーションするためのシンプルな例を提供します。
package main
import (
"fmt"
"math"
)
// Complex は実部と虚部を持つ複素数を表す構造体です。
type Complex[T Number] struct {
Real, Imag T
}
// Number は数値型のためのインターフェースです。
type Number interface {
~int | ~int32 | ~int64 | ~float32 | ~float64
}
// Abs は複素数の絶対値(大きさ)を返します。
func (c Complex[T]) Abs() float64 {
// float64 への型変換を行います。
return math.Hypot(float64(c.Real), float64(c.Imag))
}
func main() {
// Complex 構造体を使った例
c := Complex[int]{3, 4}
fmt.Println(c.Abs()) // 絶対値を表示します。
// 別の数値型を使用した例
d := Complex[float64]{1.5, 2.5}
fmt.Println(d.Abs()) // 絶対値を表示します。
}
</syntaxhighlight>
型パラメータを使用して、<code>Complex</code> 構造体が任意の数値型を受け入れるようにしました。<code>Number</code> インターフェースには <code>int</code> および <code>float</code> の具体的な型が指定されており、これにより特定の数値型に制約を与えています。<code>Complex</code> 構造体の型パラメータ <code>T</code> は <code>Number</code> インターフェースを満たす必要があり、この仕組みにより異なる数値型が <code>Complex</code> 構造体で利用できます。
== コメント ==
Goでは、<code> // </code>から行末までがコメントになります。
また、<code>/*</code>と<code>*/</code>で複数行に渡るコメントを書くこともできます。
== Go Doc コメント ==
Go Doc Comment は、パッケージ、変数、関数、メソッドなどの説明を記述するコメントです。これらのコメントは <code>godoc</code> ツールによって抽出され、Goのドキュメントを生成するために使用されます。
Go Doc Comment は、<code>//</code> または <code>/* */</code> のいずれかで記述できます。<code>//</code> を使用する場合は、コメントを上に書き、<code>/* */</code> を使用する場合は、コメントを左側に書きます。
以下は、パッケージと関数の Go Doc Comment の例です。
:<syntaxhighlight lang=go>
// Package math は、基本的な数学関数を提供します。
package math
// Add は、aとbを加算して結果を返します。
func Add(a, b int) int {
return a + b
}
</syntaxhighlight>
Go Doc Comment には、以下のようなルールがあります。
* パッケージの Go Doc Comment は、<code>// Package</code> で始まります。
* 変数、定数、関数、メソッドの Go Doc Comment は、<code>//</code> または <code>/* */</code> で始まります。
* 各行は、80文字以下になるようにします。
* コメントの最初の文は、短く、パッケージ、関数、またはメソッドの概要を説明します。
* 2番目の文以降は、詳細な説明、引数、戻り値、エラー、例などを提供します。
* コメント中の単語は、大文字で始め、句読点を含みません。
* コメント内の引用符は、"ダブルクォート" を使用します。
Go Doc Comment は、パッケージのドキュメントを生成するために非常に重要な役割を果たします。適切な Go Doc Comment を書くことで、他の開発者があなたのコードを理解しやすくなり、また、ドキュメントを参照することで、コードの使い方を学ぶことができます。
{{Nav}}
== 脚註 ==
<references />
qd4efg3aq6ej67828e2lelzey43cxmx
263404
263403
2024-11-13T00:24:07Z
Ef3
694
Goは、シンプルかつ効率的な文法を特徴とし、構造化プログラムや並行処理に優れた設計がされています。以下にGoの文法の概要を紹介します。
263404
wikitext
text/x-wiki
{{Nav}}
Goは、シンプルかつ効率的な文法を特徴とし、構造化プログラムや並行処理に優れた設計がされています。以下にGoの文法の概要を紹介します。
== 基本構造 ==
Goプログラムは<code>package</code>宣言から始まり、メインの実行ファイルの場合は<code>package main</code>と記述します。エントリーポイントは<code>func main()</code>関数です。
; hello.go
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
</syntaxhighlight>
== 変数 ==
変数の宣言には<code>var</code>キーワードを使い、型推論も可能です。また、関数内であれば短縮宣言(<code>:=</code>)も利用できます。
:<syntaxhighlight lang=go copy>
var x int = 10
var y = "Hello"
z := 3.14
</syntaxhighlight>
== 定数 ==
定数は<code>const</code>キーワードで宣言し、再代入ができません。
:<syntaxhighlight lang=go copy>
const Pi = 3.14
const Greeting = "Hello, Go!"
</syntaxhighlight>
== データ型 ==
Goには以下のような基本データ型が用意されています。
* 整数型:<code>int</code>, <code>int8</code>, <code>int16</code>, <code>int32</code>, <code>int64</code>
* 浮動小数点型:<code>float32</code>, <code>float64</code>
* 論理型:<code>bool</code>
* 文字列型:<code>string</code>
== 配列とスライス ==
* '''配列''':固定長のデータ構造です。
* '''スライス''':可変長で、要素の追加や削除が可能なデータ構造です。
:<syntaxhighlight lang=go copy>
var arr [3]int = [3]int{1, 2, 3}
slice := []int{4, 5, 6}
slice = append(slice, 7)
</syntaxhighlight>
== マップ ==
マップ(<code>map</code>)はキーと値のペアでデータを管理します。
:<syntaxhighlight lang=go copy>
dict := map[string]int{"apple": 1, "banana": 2}
fmt.Println(dict["apple"])
</syntaxhighlight>
== 関数 ==
Goでは関数も重要な要素で、複数の戻り値が可能です。また、関数を変数として扱うこともできます。
:<syntaxhighlight lang=go copy>
func add(a int, b int) int {
return a + b
}
func swap(x, y string) (string, string) {
return y, x
}
</syntaxhighlight>
== 構造体 ==
Goではクラスはありませんが、構造体(<code>struct</code>)を使ってデータをカプセル化できます。
:<syntaxhighlight lang=go copy>
type Person struct {
Name string
Age int
}
person := Person{Name: "Alice", Age: 30}
fmt.Println(person.Name)
</syntaxhighlight>
== メソッド ==
Goでは、構造体に対してメソッドを定義できます。メソッドは、特定の型(構造体)に関連付けられた関数です。メソッドを定義する際には、レシーバー(受け取る変数)を指定します。
:<syntaxhighlight lang=go copy>
func (p Person) Greet() {
fmt.Println("Hello, my name is", p.Name)
}
person := Person{Name: "Alice", Age: 30}
person.Greet() // "Hello, my name is Alice"
</syntaxhighlight>
== インターフェース ==
インターフェースは、型が持つべきメソッドのセットを定義します。Goでは、明示的に「実装する」と記述することなく、構造体がインターフェースのメソッドセットを満たすと、自動的にインターフェースを実装したと見なされます。
:<syntaxhighlight lang=go copy>
type Greeter interface {
Greet()
}
func SayHello(g Greeter) {
g.Greet()
}
person := Person{Name: "Alice", Age: 30}
SayHello(person) // "Hello, my name is Alice"
</syntaxhighlight>
== 型引数 ==
Go 1.18以降、ジェネリクス(型引数)がサポートされるようになり、関数や構造体に型を引数として渡すことができます。これにより、型に依存しない汎用的なコードを作成できます。
:<syntaxhighlight lang=go copy>
func Print[T any](value T) {
fmt.Println(value)
}
Print(42) // 42
Print("Hello") // Hello
</syntaxhighlight>
上記の例では、<code>T</code>は型引数で、<code>any</code>は<code>interface{}</code>の別名で任意の型を意味します。<code>Print</code>関数はどんな型の引数にも対応できるようになります。
== 型制約 ==
Goのジェネリクスでは、型引数に制約を設けて、関数やメソッドが受け入れる型を限定できます。型制約を使うことで、特定のインターフェースを満たす型や特定の型に対してのみ操作を適用できます。
型制約は、<code>interface</code> を使って、特定のメソッドを持つ型に制限したり、特定の型セット(例えば数値型や文字列型)に限定することができます。
例えば、数値型に限定した型制約は次のように書けます:
:<syntaxhighlight lang=go copy>
type Number interface {
int | int32 | int64 | float32 | float64
}
func Add[T Number](a, b T) T {
return a + b
}
</syntaxhighlight>
上記のコードでは、<code>Number</code> という型制約を使って、<code>int</code> や <code>float64</code> などの数値型だけを <code>Add</code> 関数に渡すことができるようにしています。このように、型制約を使うことで型の安全性を高め、汎用的な関数を作成できます。
== ポインタ ==
Goではポインタを使って変数のアドレスを参照することができますが、ポインタ演算はサポートされていません。
:<syntaxhighlight lang=go copy>
var a int = 10
var p *int = &a
fmt.Println(*p) // 10
</syntaxhighlight>
== 条件分岐 ==
Goでは<code>if</code>文と<code>switch</code>文が使えます。条件式の前に短いステートメントを記述することも可能です。
:<syntaxhighlight lang=go copy>
if x := 10; x > 5 {
fmt.Println("x is greater than 5")
}
switch day := "Monday"; day {
case "Monday":
fmt.Println("Start of the week")
case "Friday":
fmt.Println("End of the week")
default:
fmt.Println("Midweek")
}
</syntaxhighlight>
== ループ ==
Goには<code>for</code>ループがあり、<code>while</code>や<code>do-while</code>の代わりに使います。
:<syntaxhighlight lang=go copy>
for i := 0; i < 10; i++ {
fmt.Println(i)
}
i := 0
for i < 10 { // while like
fmt.Println(i)
i++
}
i := 0
for { // for ever
fmt.Println(i)
i++
if i >= 10 {
break
}
}
// スライスやマップの要素を反復処理
for index, value := range slice {
fmt.Println(index, value)
}
</syntaxhighlight>
== ゴルーチン ==
Goでは<code>goroutine</code>を使って並行処理を行います。<code>go</code>キーワードで関数を非同期に実行できます。
:<syntaxhighlight lang=go copy>
func sayHello() {
fmt.Println("Hello")
}
go sayHello()
</syntaxhighlight>
== チャネル ==
チャネルはゴルーチン間でデータをやり取りするために使われます。<code>chan</code>キーワードを使ってチャネルを宣言します。
:<syntaxhighlight lang=go copy>
messages := make(chan string)
go func() { messages <- "ping" }()
msg := <-messages
fmt.Println(msg)
</syntaxhighlight>
== エラーハンドリング ==
Goではエラーは<code>error</code>型の戻り値として処理します。エラーチェックは一般的に以下のように行います。
:<syntaxhighlight lang=go copy>
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("division by zero")
}
return a / b, nil
}
result, err := divide(10, 0)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result)
}
</syntaxhighlight>
=== defer文 ===
<code>defer</code>文は、関数が終了する際に指定した関数を遅延実行するために使います。主にリソースの解放やクリーンアップ処理で利用され、エラーが発生しても確実に実行されます。
:<syntaxhighlight lang=go copy>
func main() {
defer fmt.Println("End") // 関数の終了時に実行される
fmt.Println("Start")
}
</syntaxhighlight>
;出力結果:
:<syntaxhighlight lang=text>
Start
End
</syntaxhighlight>
複数の<code>defer</code>がある場合は、後から指定した順に実行されます(LIFO順序)。
== パッケージ ==
Goでは<code>import</code>を使って標準ライブラリや外部パッケージをインポートできます。
:<syntaxhighlight lang=go copy>
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Sqrt(16))
}
</syntaxhighlight>
== まとめ ==
Goはシンプルで効率的な文法を持ち、特に並行処理やエラーハンドリングに優れた機能を備えています。シンプルで直感的な構造を提供し、学習曲線が低い一方で高いパフォーマンスを実現できます。
{{Nav}}
{{DEFAULTSORT:GOふんほうのかいよう}}
[[Category:Go]]
oqye3tuqwk0kcc759y6yso0uoj9udjv
Go/条件分岐と繰り返し
0
28560
263405
261908
2024-11-13T01:43:36Z
Ef3
694
/*rangeと関数を使ったループ*/ Go 1.23 では、for 文の range 構文が拡張され、関数を使ってイテレーションができるようになりました。これにより、配列やスライス、マップ、チャネルだけでなく、関数の結果を使ってループ処理を行うことが可能になりました。 具体的には、関数が yield という関数を引数として受け取り、その yield を使って値を返し、for 文がその値を反復処理します。この仕組みによって、再帰的なデータ構造や動的に生成されるデータを簡単に扱えるようになりました。
263405
wikitext
text/x-wiki
{{Nav}}
== 制御構造 ==
Goの構文が[[C言語]]と似ていると言われることがありますが、これは正しくありません。
GoとC言語の間には、構文や意味論において大きな違いがあります。「同様」や「似ている」といった表現では誤解を生む可能性があります。
=== 条件分岐 ===
Goでは、条件分岐をif文などで行いますが、C言語とは異なります。C言語にもif、else、switchなどがありますが、スコープルールなどに違いがあります。
==== if文 ====
;C言語のif文:<syntaxhighlight lang=c>
if (条件式) 文;
</syntaxhighlight>
;Goのif文:<syntaxhighlight lang=go>
if 条件式 {
文
}
</syntaxhighlight>
Goでは条件式は真偽値である必要があり、i != 0 を単に i と書くことはできません。整数値と真偽値の間に自動変換はなく、キャストもできません。必ず比較演算子や論理演算子を使用します。
;[https://play.golang.org/p/iTj_he9lLIZ コード例]:<syntaxhighlight lang="go">
package main
import (
"fmt"
"math"
)
func main() {
if num := math.NaN(); num < 0.0 {
fmt.Println("負")
} else if num > 0.0 {
fmt.Println("正")
} else if num == 0.0 {
fmt.Println("零")
} else {
fmt.Println("NaN")
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
NaN
</syntaxhighlight>
Goでは、if文の条件式の前に「単純な文」を書くことが可能です。上記の例では、変数numがmath.NaN()で初期化されており、そのスコープはif文の中に限定されます。
{{コラム|Goには条件演算子はありません|
Goには条件演算子(式 ? 値 : 値)はありません。条件演算子が必要な場合、if文を使うか、別の方法としてmapを活用することもできます。
;[https://play.golang.org/p/LE4oWslBmSc コード例]:<syntaxhighlight lang="go">
package main
import (
"fmt"
"unsafe"
)
func main() {
n := 0x5a5a5a5a5a5a5a5a
size := int(unsafe.Sizeof(n)) * 8
m := map[bool]string{false: "●", true: "○"}
for i := 0; i < size; i++ {
fmt.Print(m[(1<<(size-i-1)&n) != 0])
}
fmt.Println()
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
●○●○○●○●●○●○○●○●●○●○○●○●
</syntaxhighlight>
}}
==== switch文 ====
switch文を使うと、複雑なif文を簡潔に表現できます。
;[https://play.golang.org/p/bXQaelJwaO9 コード例]:<syntaxhighlight lang="go">
package main
import (
"fmt"
"math"
)
func main() {
switch num := math.NaN(); {
case num < 0.0:
fmt.Println("負")
case num > 0.0:
fmt.Println("正")
case num == 0.0:
fmt.Println("零")
default:
fmt.Println("NaN")
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
NaN
</syntaxhighlight>
Goのswitch文では、if文と同様に「単純な文」を書くことができます。C言語やJavaのようにbreak文は不要で、fallthrough文を使わない限り、自動的にcase節の終わりで処理が終了します。
==== select文 ====
select文は、通信チャンネルを使った並行処理のための構文です。複数のチャンネルからの入力を待機し、その中で最初に準備ができたものを処理します。
;[https://paiza.io/projects/WoJ_v8HVA9Apbht5JtDckQ?language=go Select文を使ったタイムアウト]:<syntaxhighlight lang="go">
package main
import (
"fmt"
"time"
)
func main() {
done := make(chan bool)
go func(s int) {
fmt.Printf("#%d..do\n", s)
time.Sleep(time.Duration(s) * time.Second)
fmt.Printf("#%d..done\n", s)
done <- true
}(2)
select {
case <-done:
fmt.Println("Done!")
case <-time.After(1 * time.Second):
fmt.Println("Timeout!")
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
#2..do
Timeout!
</syntaxhighlight>
=== イテレート - for文 ===
Goでは、<code>for</code>文が唯一の繰り返し構文です。Goには<code>do</code>や<code>while</code>はなく、for文のみで繰り返し処理を行います。
==== Cスタイルの <code>for</code> 文 (初期化、条件式、後処理) ====
Goでは、C言語のような構文で <code>for</code> 文を使用できます。この形式では、初期化、条件式、後処理を記述することができます。
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
0
1
2
3
4
</syntaxhighlight>
この例では、<code>i</code> を0から始めて5未満の間、1ずつ増加させながらループを繰り返します。<code>i++</code> は後処理にあたります。
==== 条件式だけの <code>for</code> 文 ====
<code>for</code> 文の初期化と後処理を省略し、条件式のみを使うこともできます。C言語の<code>while</code> 文に相当します。
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
i := 0
for i < 5 {
fmt.Println(i)
i++
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
0
1
2
3
4
</syntaxhighlight>
ここでは、<code>i</code> が5未満である限りループを繰り返します。<code>i++</code> はループ内で更新されます。
==== 無限ループ ====
条件式を省略すると、無限ループを作成することができます。<code>break</code> を使ってループを終了させることができます。
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
for {
fmt.Println("無限ループ")
break // ループを終了
}
fmt.Println("脱出")
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
無限ループ
脱出
</syntaxhighlight>
このように、Goの <code>for</code> 文は非常に柔軟で、様々なループの形に対応しています。
==== <code>range</code> を使ったループ ====
Goでは、<code>range</code> を使うことで、配列やスライス、マップ、チャンネルなどを簡単にループ処理できます。
; スライスの場合:
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11}
for index, value := range s {
fmt.Println(index, value)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
0 2
1 3
2 5
3 7
4 11
</syntaxhighlight>
; マップの場合:
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
fmt.Println(key, value)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
a 1
b 2
c 3
</syntaxhighlight>
; チェンネルの場合:
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
ch := make(chan int)
go func(ch chan int) {
for i := 0; i < 5; i++ {
ch <- 2*i + 1
}
close(ch)
}(ch)
for num := range ch {
fmt.Println(num)
}
fmt.Println("done.")
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
1
3
5
7
9
done.</syntaxhighlight>
==== rangeと関数を使ったループ ====
Go 1.23 では、<code>for</code> 文の <code>range</code> 構文が拡張され、関数を使ってイテレーションができるようになりました。これにより、配列やスライス、マップ、チャネルだけでなく、関数の結果を使ってループ処理を行うことが可能になりました。
具体的には、関数が <code>yield</code> という関数を引数として受け取り、その <code>yield</code> を使って値を返し、<code>for</code> 文がその値を反復処理します。この仕組みによって、再帰的なデータ構造や動的に生成されるデータを簡単に扱えるようになりました。
;例
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
factorial := func(yield func(x int) bool) {
result := 1
i := 1
for yield(result) {
result *= i
i++
}
}
// print the factorial numbers below 1000:
for x := range factorial {
if x >= 1000 {
break
}
fmt.Printf("%d ", x)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
1 1 2 6 24 120 720
</syntaxhighlight>
このように、関数内で <code>yield</code> を使って値を返し、<code>for</code> 文でその値を反復処理することができます。
; まとめ
このように、Goの <code>for</code> 文は非常に直感的で柔軟に使え、条件に応じた様々なパターンのループが可能です。
== 脚註 ==
<references />
gokvotdxue76zglrmimkzyawp94nqct
263407
263405
2024-11-13T02:20:16Z
Ef3
694
Go言語では、プログラムのフローを制御するためにいくつかの制御構造が用意されています。これらの構造は、プログラムのロジックを実行する際に重要な役割を果たします。本章では、Go言語における主な制御構造について説明します。
263407
wikitext
text/x-wiki
{{Nav}}
== 制御構造 ==
Go言語では、プログラムのフローを制御するためにいくつかの制御構造が用意されています。これらの構造は、プログラムのロジックを実行する際に重要な役割を果たします。本章では、Go言語における主な制御構造について説明します。
=== 条件分岐 ===
Goでは、条件分岐をif文などで行いますが、C言語とは異なります。C言語にもif、else、switchなどがありますが、スコープルールなどに違いがあります。
==== 基本的なif文 ====
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
number := 10
if number > 5 {
fmt.Println("numberは5より大きい")
}
}
</syntaxhighlight>
このコードでは、<code>number</code>が5より大きいため、<code>"numberは5より大きい"</code>が出力されます。
==== else文 ====
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
number := 3
if number > 5 {
fmt.Println("numberは5より大きい")
} else {
fmt.Println("numberは5以下")
}
}
</syntaxhighlight>
このコードでは、<code>number</code>が3なので、<code>"numberは5以下"</code>が出力されます。
==== else if文 ====
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
number := 7
if number > 10 {
fmt.Println("numberは10より大きい")
} else if number > 5 {
fmt.Println("numberは5より大きく、10以下")
} else {
fmt.Println("numberは5以下")
}
}
</syntaxhighlight>
このコードでは、<code>number</code>が7なので、<code>"numberは5より大きく、10以下"</code>が出力されます。
;[https://play.golang.org/p/iTj_he9lLIZ コード例]:<syntaxhighlight lang=go copy>
package main
import (
"fmt"
"math"
)
func main() {
if num := math.NaN(); num < 0.0 {
fmt.Println("負")
} else if num > 0.0 {
fmt.Println("正")
} else if num == 0.0 {
fmt.Println("零")
} else {
fmt.Println("NaN")
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
NaN
</syntaxhighlight>
Goでは、if文の条件式の前に「単純な文」を書くことが可能です。上記の例では、変数numがmath.NaN()で初期化されており、そのスコープはif文の中に限定されます。
==== switch文 ====
switch文を使うと、複雑なif文を簡潔に表現できます。
;[https://play.golang.org/p/bXQaelJwaO9 コード例]:<syntaxhighlight lang=go copy>
package main
import (
"fmt"
"math"
)
func main() {
switch num := math.NaN(); {
case num < 0.0:
fmt.Println("負")
case num > 0.0:
fmt.Println("正")
case num == 0.0:
fmt.Println("零")
default:
fmt.Println("NaN")
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
NaN
</syntaxhighlight>
Goのswitch文では、if文と同様に「単純な文」を書くことができます。C言語やJavaのようにbreak文は不要で、fallthrough文を使わない限り、自動的にcase節の終わりで処理が終了します。
==== 型によるswitch ====
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
var x interface{} = "Hello"
switch v := x.(type) {
case int:
fmt.Println("xはint型です")
case string:
fmt.Println("xはstring型です:", v)
default:
fmt.Println("xはその他の型です")
}
}
</syntaxhighlight>
このコードでは、<code>x</code>が<code>string</code>型であるため、<code>"xはstring型です: Hello"</code>が出力されます。
==== select文 ====
select文は、通信チャンネルを使った並行処理のための構文です。複数のチャンネルからの入力を待機し、その中で最初に準備ができたものを処理します。
;[https://paiza.io/projects/WoJ_v8HVA9Apbht5JtDckQ?language=go Select文を使ったタイムアウト]:<syntaxhighlight lang=go copy>
package main
import (
"fmt"
"time"
)
func main() {
done := make(chan bool)
go func(s int) {
fmt.Printf("#%d..do\n", s)
time.Sleep(time.Duration(s) * time.Second)
fmt.Printf("#%d..done\n", s)
done <- true
}(2)
select {
case <-done:
fmt.Println("Done!")
case <-time.After(1 * time.Second):
fmt.Println("Timeout!")
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
#2..do
Timeout!
</syntaxhighlight>
=== 反復:for文 ===
Goでは、<code>for</code>文が唯一の繰り返し構文です。Goには<code>do</code>や<code>while</code>はなく、for文のみで繰り返し処理を行います。
==== Cスタイルの <code>for</code> 文 (初期化、条件式、後処理) ====
Goでは、C言語のような構文で <code>for</code> 文を使用できます。この形式では、初期化、条件式、後処理を記述することができます。
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
0
1
2
3
4
</syntaxhighlight>
この例では、<code>i</code> を0から始めて5未満の間、1ずつ増加させながらループを繰り返します。<code>i++</code> は後処理にあたります。
==== 条件式だけの <code>for</code> 文 ====
<code>for</code> 文の初期化と後処理を省略し、条件式のみを使うこともできます。C言語の<code>while</code> 文に相当します。
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
i := 0
for i < 5 {
fmt.Println(i)
i++
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
0
1
2
3
4
</syntaxhighlight>
ここでは、<code>i</code> が5未満である限りループを繰り返します。<code>i++</code> はループ内で更新されます。
==== 無限ループ ====
条件式を省略すると、無限ループを作成することができます。<code>break</code> を使ってループを終了させることができます。
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
for {
fmt.Println("無限ループ")
break // ループを終了
}
fmt.Println("脱出")
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
無限ループ
脱出
</syntaxhighlight>
このように、Goの <code>for</code> 文は非常に柔軟で、様々なループの形に対応しています。
==== <code>range</code> を使ったループ ====
Goでは、<code>range</code> を使うことで、配列やスライス、マップ、チャンネルなどを簡単にループ処理できます。
; スライス
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11}
for index, value := range s {
fmt.Println(index, value)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
0 2
1 3
2 5
3 7
4 11
</syntaxhighlight>
; マップ
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
fmt.Println(key, value)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
a 1
b 2
c 3
</syntaxhighlight>
; チェンネル
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
ch := make(chan int)
go func(ch chan int) {
for i := 0; i < 5; i++ {
ch <- 2*i + 1
}
close(ch)
}(ch)
for num := range ch {
fmt.Println(num)
}
fmt.Println("done.")
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
1
3
5
7
9
done.</syntaxhighlight>
==== rangeと関数を使ったループ ====
Go 1.23 では、<code>for</code> 文の <code>range</code> 構文が拡張され、関数を使ってイテレーションができるようになりました。これにより、配列やスライス、マップ、チャネルだけでなく、関数の結果を使ってループ処理を行うことが可能になりました。
具体的には、関数を引数として受け取り、その <code>yield</code> を使って値を返し、<code>for</code> 文がその値を反復処理します。この仕組みによって、再帰的なデータ構造や動的に生成されるデータを簡単に扱えるようになりました。
;例
:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
factorial := func(yield func(x int) bool) {
result := 1
i := 1
for yield(result) {
result *= i
i++
}
}
// print the factorial numbers below 1000:
for x := range factorial {
if x >= 1000 {
break
}
fmt.Printf("%d ", x)
}
}
</syntaxhighlight>
; 実行結果
:<syntaxhighlight lang=text>
1 1 2 6 24 120 720
</syntaxhighlight>
このように、関数内で <code>yield</code> を使って値を返し、<code>for</code> 文でその値を反復処理することができます。
== まとめ ==
Go言語の制御構造は、プログラムのフローを柔軟に制御するための強力なツールです。条件分岐やループ、並行処理を適切に使い分けることで、効率的で読みやすいコードを書くことができます。
== 脚註 ==
<references />
73o5kqg857y60kwfstxtl2wf8deme1x
皇室典範第22条
0
30876
263416
175592
2024-11-13T10:30:41Z
Fukupow
34984
成人年齢の修正
263416
wikitext
text/x-wiki
{{Pathnav|法学|皇室法|皇室典範||frame=1}}
== 条文 ==
; 第22条
: 天皇、皇太子及び皇太孫の成年は、18年とする。
=== 旧皇室典範 ===
; 第13条
: 天皇及皇太子皇太孫ハ満18年ヲ以テ成年トス
; 第14条
: 前条ノ外ノ皇族ハ満20年ヲ以テ成年トス
== 関連条文 ==
; 民法第4条
: 年齢18歳をもって、成年とする。
== 解説 ==
本条は、[[w:天皇|天皇]]の[[w:成年|成年]]を18歳と定めるとともに、[[w:皇族|皇族]]のうち[[w:皇太子|皇太子]]・皇太孫の成年も18歳と定める規定である。これは、[[w:摂政|摂政]]の設置を可能な限り回避する、摂政の設置期間を可能な限り短期にすることを目的としている。
2022年(令和4年)4月から成年年齢が20歳から18歳に引き下げられたため<ref>{{Cite web |url=https://www.moj.go.jp/MINJI/minji07_00218.html |title=民法の一部を改正する法律(成年年齢関係)について |publisher=[[w:法務省|法務省]] |accessdate=2024-11-13}}</ref>、皇太子・皇太孫以外の皇族や[[w:日本国民|日本国民]]の成年も、[[w:民法 (日本)|民法]][[民法第4条|第4条]]の規定により18歳となる。
== 脚注 ==
{{reflist}}
== 参考文献 ==
* {{Cite book |和書 |author1=[[w:芦部信喜|芦部信喜]] |author2=[[w:高見勝利|高見勝利]]編著 |date=1990-09-28 |title=皇室典範 〔昭和22年〕 |publisher=[[w:信山社出版|信山社出版]] |isbn=9784882612001}}
* {{Cite book |和書 |author=[[w:園部逸夫|園部逸夫]] |date=2002-04-10 |title=皇室法概論 ――皇室制度の法理と運用―― |publisher=[[w:第一法規出版|第一法規出版]] |isbn=9784474016859}}
{{stub}}
{{前後
|[[皇室典範]]
|第4章 成年、敬称、即位の礼、大喪の礼、皇統譜及び陵墓
|[[皇室典範第21条]]
|[[皇室典範第23条]]
}}
[[category:皇室典範|022]]
57un12pbnzv98s8uv9dxvzahqzr1n8r
初等数学公式集/解析幾何
0
31717
263415
251972
2024-11-13T10:25:42Z
Tomzo
248
/* 直線 */
263415
wikitext
text/x-wiki
== 平面 ==
=== 2点間の関係 ===
2点A<math>(a_1, b_1)</math>, B<math>(a_2, b_2)</math>において、
*距離:<math>AB = \sqrt{(a_2 - a_1)^2 + (b_2 - b_1)^2}</math>
*<math>m:n</math>に内分する点<math>P</math>:<math>\left(\frac{m a_2 + n a_1}{m+n}, \frac{m b_2 + n b_1}{m+n}\right)</math>
*<math>m:n</math><small><small><math>(m \neq n)</math></small></small>に外分する点<math>Q</math>:<math>\left(\frac{m a_2 - n a_1}{m-n}, \frac{m b_2 - n b_1}{m-n}\right)</math>
=== 関数のグラフの移動 ===
==== 平行移動 ====
* <math>y=f(x)</math>の表すグラフを ''x''軸方向に''a''、 ''y''軸方向に''b''移動したときのグラフを表す式:
*:<math> y-b = f(x-a)</math>
==== 対称移動 ====
* <math>y=f(x)</math>の表すグラフを ''x''軸に関して対称移動したときのグラフを表す式:
*:<math> y = -f(x)</math>
* <math>y=f(x)</math>の表すグラフを ''y''軸に関して対称移動したときのグラフを表す式:
*:<math> y = f(-x)</math>
* <math>y=f(x)</math>の表すグラフを原点に関して対称移動したときのグラフを表す式:
*:<math> y = -f(-x)</math>
* <math>y=f(x)</math>の表すグラフを<math> y= x</math> に関して対称移動したときのグラフを表す式:
*:<math> x = f(y)</math>
*::<math>f(x)</math>の逆関数を<math>f^{-1}(x)</math>と表す場合、<math> y = f^{-1}(x)</math>
=== 直線 ===
* 2点 <math>(a_1, b_1)</math>, <math>(a_2, b_2)</math> を通る直線の式:
*:<math>y=\frac{b_2-b_1}{a_2-a_1}(x-a_1)+b_1 </math>
** 2点 <math>x</math>切片<math>(a, 0)</math>, <math>y</math>切片<math>(0, b)</math>(但し、ab≠0とする)を通る直線の式:
**:<math>\frac{x}{a}+\frac{y}{b}=1 </math>
* 点 <math>(x_0, y_0)</math> を通り、傾き <math>c</math> の直線の式:
*:<math>y-y_0=c(x-x_0) </math>
** 傾き <math>c</math> を方向ベクトル<math>(a, b)</math>と捉えると:
**:<math>\frac{x-x_0}a=\frac{y-y_0}b </math>
* 点''<math>P</math>'' <math>(x_0, y_0)</math>と直線<math>ax + by + c = 0</math>との距離<math> l</math>:
*:<math>l</math> = <math> \frac{\left|ax_0 + by_0 + c\right\vert}{\sqrt{a^2 + b^2}} </math>
**特に 原点''<math>O</math>'' <math>(0, 0)</math>と直線<math>ax + by + c = 0</math>(<math>ax + by = -c</math>)との距離<math> l_0</math>:
**:<math>l_0</math> = <math> \frac{|c|}{\sqrt{a^2 + b^2}}</math>
***原点''<math>O</math>'' <math>(0, 0)</math>と2点 <math>x</math>切片<math>(a, 0)</math>, <math>y</math>切片<math>(0, b)</math>(但し、ab≠0とする)を通る直線:<math>\frac{x}{a}+\frac{y}{b}=1 </math>との距離<math> l_0</math>:
***:<math>l_0</math> = <math> \frac{|ab|}{\sqrt{a^2 + b^2}}</math>
==== 平均変化率 ====
* ''x''を''a''から''b''まで変化させたときの関数<math>f(x)</math>の変化の割合(平均変化率):
*:<math>\frac{f(b)-f(a)}{b-a} </math>
==== 接線の方程式 ====
* 関数<math>f(x)</math>のグラフ上の点<math>(x_1, y_1)</math>における接線:
*:<math>y - y_1=f^\prime(x)(x - x_1) </math>
=== 二次曲線 ===
==== 円 ====
* 原点<math>\displaystyle (0, 0)</math>を中心とする、半径''r''の円<math>O</math>の方程式(標準形):
*:<math>O: \displaystyle x^2+y^2 = r^2</math>
** 上記円<math>O</math>を、<math>\displaystyle (a, b)</math>移動させた、半径''r''の円<math>O_1</math>の方程式
**:<math>O_1: \displaystyle (x-a)^2+(y-b)^2 = r^2</math>, 中心座標<math>\displaystyle (a, b)</math>
* 円の方程式の一般形
*:<math>\displaystyle x^2+y^2+hx+ky+c = 0</math> ただし、<math>h^2+k^2-4c > 0</math>。
* 円<math>O</math>について一般角<math>\theta</math>を用いた媒介変数表示
**<math>x = r\cos\theta</math>
**<math>y = r\sin\theta</math>
**: 円<math>O_1</math>について一般角<math>\theta</math>を用いた媒介変数表示
**:*<math>x = r\cos\theta + a</math>
**:*<math>y = r\sin\theta + b</math>
* 円<math>O: \displaystyle x^2+y^2 = r^2</math>上の点<math>P</math><math>\displaystyle (x_1, y_1)</math>における接線:
*:<math>\displaystyle x_1x+y_1y = r^2</math>([[初等数学公式集/微積分#円の微分|参考]])
==== 楕円 ====
*楕円の標準形: <math>\displaystyle \frac{x^2}{a^2}+ \frac{y^2}{b^2} = 1</math> <math>(a \neq b)</math>
*:上記楕円の、<math>x</math>軸、<math>y</math>軸との交点を、<math>A, A', B, B'</math>とすると、
*::<math>A:(a,0), A':(-a,0), B:(0,b), B':(0,-b)</math>、<math>AA', BB'</math>の長い方を'''長軸'''、短い方を'''短軸'''という。長軸と短軸を合わせて'''主軸'''という
*::<math>AA', BB'</math>は、<math>O:(0,0)</math>で垂直に交わる。点<math>O</math>を楕円の'''中心'''、点<math>A, A', B, B'</math>を楕円の'''頂点'''という。中心を通る弦を'''直径'''という。
*:::直径:<math>d = 2\sqrt{b^2+\left(1-\frac{b^2}{a^2}\right)x^2}</math><math>= 2\sqrt{a^2+\left(1-\frac{a^2}{b^2}\right)y^2}</math>
** 上記楕円の一般角<math>\theta</math>を用いた媒介変数表示
***<math>x = a\cos\theta</math>
***<math>y = b\sin\theta</math>
[[Image:Ellipse-def.png|200px|thumb|楕円と焦点]]
*2定点<math>F:(k,0), F':(-k,0) </math><math></math>までの距離の和:<math>FP+F'P</math>が一定値:<math>2a</math>である点<math>P</math>の軌跡は以下の式となる(なお、<math>0<k<a</math>)。
*:<math>\displaystyle \frac{x^2}{a^2}+ \frac{y^2}{a^2-k^2} = 1</math>
*::これは、<math>A:(a,0), A':(-a,0), B:(0,\sqrt{a^2-k^2}), B':(0,-\sqrt{a^2-k^2})</math>、<math>AA'</math>を長軸、<math>BB'</math>を短軸とする楕円である。
*::この時、<math>F:(k,0), F':(-k,0) </math>を楕円の'''焦点'''という。
*:::2焦点を通る直径を長軸、2焦点の垂直二等分線である直径を短軸と定義できる。
*::標準形: <math>\displaystyle \frac{x^2}{a^2}+ \frac{y^2}{b^2} = 1</math>の焦点:
*::*<math>a>b</math>ならば、<math>F:(\sqrt{a^2-b^2},0), F':(-\sqrt{a^2-b^2},0) </math>
*::*<math>a<b</math>ならば、<math>F:(0,\sqrt{b^2-a^2}), F':(0,-\sqrt{b^2-a^2}) </math>
* 楕円:<math>\frac{x^{2}}{a^{2}} + \frac{y^{2}}{b^{2}} = 1</math>上の点<math>(x_1, y_1)</math>における接線:
*:<math>\frac{x_{1}x}{a^{2}} + \frac{y_{1}y}{b^{2}} = 1</math>([[初等数学公式集/微積分#楕円の微分|参考]])
==== 放物線 ====
* グラフが点 <math>(p, q)</math> を頂点とし,2次の項の係数が <math>a</math> である二次関数の式:
*:<math>y=a(x-p)^2+q</math>
* グラフが点 <math>(p, q)</math> を頂点とし,点 <math>(a, b)</math> を通る二次関数の式:
*:<math>y=\frac{b-q}{(a-p)^2}(x-p)^2+q</math>
* 二次関数<math>y=ax^2+bx+c</math>のグラフの頂点:
*:<math>\left( -\frac{b}{2a} , -\frac{b^2 - 4ac}{4a}\right)</math>
* グラフが2点 <math>(a_1, b_1)</math>, <math>(a_2, b_2)</math> を通り,2次の項の係数が <math>c</math> である二次関数の式:
*:<math>y=c(x-a_1)(x-a_2)+\frac{b_2-b_1}{a_2-a_1}(x-a_1)+b_1</math>
* グラフが3点 <math>(a_1, b_1)</math>, <math>(a_2, b_2)</math>, <math>(a_3, b_3)</math> を通る二次関数の式:
*:<math>y=b_1\frac{(x-a_2)(x-a_3)}{(a_1-a_2)(a_1-a_3)}+b_2\frac{(x-a_3)(x-a_1)}{(a_2-a_3)(a_2-a_1)}+b_3\frac{(x-a_1)(x-a_2)}{(a_3-a_1)(a_3-a_2)}</math>
[[Image:Parabola with focus and directrix.svg|200px|thumb|準線 L と焦点 F]]
*点<math>P</math>について、定点<math>F</math>と<math>F</math>を通らない直線<math>L</math>上の点で<math>P</math>と距離をなす<math>Q</math>に関して、<math>FP=PQ</math>であるときの点<math>P</math>の軌跡は放物線となる。この時、定点<math>F</math>を'''焦点'''、直線<math>L</math>を'''準線'''という。
*:<math>P</math>:<math>(x, y)</math>、焦点を<math>F</math>:<math>(0, a)</math>、準線の式を <math>y = -a</math> とすると<math>FP=PQ</math>より
*:: <math>\sqrt{x^2 + (a-y)^2} = y+a</math>
*:: <math>x^2 + a^2 - 2ay + y^2 = y^2 + 2ay + a^2</math>
*:: <math>x^2 = 4ay</math>
*:: <math>y = \frac{x^2}{4a}</math>
*<math>y=ax^2</math>の焦点<math>F</math>:<math>\left(0, \frac{1}{4a}\right)</math>、準線:<math>y = -\frac{1}{4a}</math>
* 放物線:<math>y^2 = 4px</math>上の点<math>(x_1, y_1)</math>における接線:
*:<math>y_1y = 2p(x + x_1)</math>
==== 双曲線 ====
[[Image:Doublehyperbel.png|200px|thumb|双曲線]]
*双曲線の標準形: <math>\displaystyle \frac{x^2}{a^2}- \frac{y^2}{b^2} = 1</math>(<math>x</math>軸対称、右図青色で示されるもの)
*:上記双曲線の'''漸近線''':<math>\frac{x}{a} + \frac{y}{b} = 0 \ , \ \frac{x}{a} - \frac{y}{b} = 0</math>
*::特に、a=bである時、この2つの漸近線は直行し、この双曲線を特に直角双曲線という。
*:::直角双曲線:<math>\displaystyle x^2- y^2 = a^2</math>について<math>\frac{\pi}{4}</math>回転させると、
*::::<math>X = x\cos{\frac{\pi}{4}}-y\sin{\frac{\pi}{4}} = \frac{1}{\sqrt{2}}(x-y)</math>, <math>Y= x\sin{\frac{\pi}{4}}+y\cos{\frac{\pi}{4}} = \frac{1}{\sqrt{2}}(x+y)</math>
*::::<math>x-y = X\sqrt{2}</math>, <math>x+y = Y\sqrt{2}</math>
*::::<math>\therefore XY = \frac{a^2}{2}</math>、即ち、<math>Y = \frac{a^2}{2X}</math>となり、反比例のグラフとなることがわかる。
* 双曲線:<math>\frac{x^{2}}{a^{2}} - \frac{y^{2}}{b^{2}} = 1</math>上の点<math>(x_1, y_1)</math>における接線:
*:<math>\frac{x_{1}x}{a^{2}} - \frac{y_{1}y}{b^{2}} = 1</math>
* 一般角<math>\theta</math>を用いた媒介変数表示
**<math>x = \frac{a}{\cos\theta}</math>
**<math>y = b\tan\theta</math>
[[Image:Hyperbel-def-e.svg|200px|thumb|双曲線と焦点]]
*2定点<math>F_1:(k,0), F_2:(-k,0) </math>までの距離の差:<math>|F_1 P-F_2 P|</math>が一定値:<math>2a</math>である点<math>P</math>の軌跡は以下の式となる。
*:<math>\displaystyle \frac{x^2}{a^2}- \frac{y^2}{k^2-a^2} = 1</math>
*::<math>\triangle{P F_1 F_2}</math>において、<math>|F_1 P-F_2 P| < F_1 F_2</math>なので、<math>a < k</math>。従って、<math>k^2 - a^2 > 0</math>であり、<math>k^2 - a^2 = b^2</math>と置くことができ、この軌跡は、双曲線であることがわかる。
*::この時、<math>F_1:(k,0), F_2:(-k,0) </math>を双曲線の'''焦点'''といい、焦点を結ぶ直線を'''主軸'''(上記の場合、<math>x</math>軸:<math>y=0</math>)という。
*::双曲線と主軸の交点を求めると、<math>y=0, x=\pm a</math>、交点は<math>V_1:(a,0), V_2:(-a,0) </math>となり、これらを、双曲線の'''頂点'''、頂点の中点を双曲線の'''中心'''という。
*:*標準形: <math>\displaystyle \frac{x^2}{a^2}- \frac{y^2}{b^2} = 1</math>の焦点:
*:*:<math>F:(\sqrt{a^2+b^2},0), F':(-\sqrt{a^2+b^2},0) </math>
=== その他の図形 ===
* 原点''O''・点<math>A(x_a,y_a)</math>・点<math>B(x_b,y_b)</math>を結んでできる三角形OABの面積''S'':
*:<math>S = \frac{1}{2} \left|y_0\right| \left| x_a - x_b \right|=\frac{1}{2} \left|x_0\right| \left| y_a - y_b \right| </math>
*:ただし<math>x_0,y_0</math>はそれぞれ直線''AB''の''x''切片・''y''切片。
*:または <math>S = \frac {\left| x_ay_b - x_by_a \right|}{2} </math> (サラスの公式)
*2次関数(<math>y=ax^2</math>)上の3点<math>A(x_a,y_a)</math>・<math>B(x_b,y_b)</math>・<math>C(x_c,y_c)</math>を結んで出来る三角形ABCの面積''S'':
*:<math>x_a - x_b = l</math> , <math>x_b - x_c = m</math> , <math>x_c - x_a = n</math>とすると、
*:<math>S = \frac{|almn|}{2}</math>
== 三次元空間 ==
* 2点A<math>(a_1, b_1, c_1)</math>, B<math>(a_2, b_2, c_2)</math>間の距離:
*:
*:<math>AB = \sqrt{(a_2 - a_1)^2 + (b_2 - b_1)^2+ (c_2 - c_1)^2}</math>
=== 直線の式 ===
* 点 <math>(x_0, y_0, z_0)</math> を通り、方向ベクトルが<math>(a, b, c)</math>である直線の式:
*:<math>\frac{x-x_0}a=\frac{y-y_0}b=\frac{z-z_0}c</math>
** 2点 <math>(a_1, b_1, c_1)</math>, <math>(a_2, b_2, c_2)</math> を通る直線の式:
**:<math>\frac{x-a_1}{a_2-a_1}=\frac{y-b_1}{b_2-b_1}=\frac{z-c_1}{c_2-c_1}</math>
=== 平面の式 ===
* 一般式
*:<math>ax + by + cz + d = 0</math>
*::なお、<math>d\neq{0}</math>である時、<math>ax + by + cz = 1</math>と表せる。
*::また、<math>d = 0</math>ならば、<math>ax + by + cz = 0</math>であり、原点<math>O(0, 0, 0)</math>を含む平面となる。
** 点 <math>(x_0, y_0, z_0)</math> を通り、法線ベクトルが<math>(a, b, c)</math>である平面の式:
**:<math>a({x-x_0})+b({y-y_0})+c({z-z_0})=0</math>
** 3点 <math>x</math>切片<math>(a, 0, 0)</math>, <math>y</math>切片<math>(0, b, 0)</math>, <math>z</math>切片<math>(0, 0, c)</math>(ただし<math>abc\neq{0}</math>とする)を通る平面の式:
**:<math>\frac{x}{a}+\frac{y}{b}+\frac{z}{c}=1</math>
** 同一直線上にない3点 <math>(x_1, y_1, z_1)</math>, <math>(x_2, y_2, z_2)</math>, <math>(x_3, y_3, z_3)</math> を通る平面の式:
**: <math>ax + by + cz = \Delta</math>
**: ただし、
**:: <math>a = y_2 z_3 - y_3 z_2 - y_1 z_3 + y_3 z_1 + y_1 z_2 - y_2 z_1</math>
**:: <math>b = - x_2 z_3 + x_3 z_2 + x_1 z_3 - x_3 z_1 - x_1 z_2 + x_2 z_1</math>
**:: <math>c = x_2 y_3 - x_3 y_2 - x_1 y_3 + x_3 y_1 + x_1 y_2 - x_2 y_1</math>
**:: <math>\Delta = x_1 y_2 z_3 + x_2 y_3 z_1 + x_3 y_1 z_2 - x_1 y_3 z_2 - x_2 y_1 z_3 - x_3 y_2 z_1</math>
**:<u>※通常は、<math>ax + by + cz = 1</math></u> .or. <math>0</math><u> に代入して、三元一次方程式を解く。その結果を[[クラメルの公式]]を用いて表したのが上記。</u>
* 点''<math>P</math>'' <math>(p, q, r)</math>と平面<math>ax + by + cz + d = 0</math>の距離<math> l</math>:
*:<math>l</math> = <math> \frac{\left|ap + bq + cr + d\right\vert}{\sqrt{a^2 + b^2 + c^2}} </math>
* 平面と直線との交点
**平面<math>\Pi : ax + by + cz + d = 0</math> と直線<math>l: \frac{x-x_0}p=\frac{y-y_0}q=\frac{z-z_0}r</math> との交点。
**:(解法)
**::直線上の点をパラメータ<math>t</math>で表すと<math>(pt + x_0, qt + y_0, rt + z_0)</math>
**::これを、平面の式に代入し、<math>t</math>について解くと、<math>t</math> = <math> -\frac{ ax_0 + by_0 + cz_0 +d }{ ap + bq + cr }</math> が得られる。これを、直線の式に代入し交点を求める(代入の結果は割愛)。
***なお、<math>ap + bq + cr = 0</math> かつ <math> ax_0 + by_0 + cz_0 +d \neq{0}</math> ならば、平面<math>\Pi </math>と直線<math>l</math>は交点を有さない。
****この時の平面<math>\Pi </math>と直線<math>l</math>との距離は、
****:<math> \frac{\left|ax_0 + by_0 + cz_0 +d\right\vert}{\sqrt{a^2 + b^2 + c^2}} </math>
***また、<math>ap + bq + cr = 0</math> かつ <math> ax_0 + by_0 + cz_0 +d = 0</math> ならば、直線<math>l</math>は平面<math>\Pi </math>上にある。
**::*<math>ap + bq + cr </math>は、平面<math>\Pi </math>の法線ベクトル<math>(a, b, c)</math>と直線<math>l</math>の方向ベクトル<math>(p, q, r)</math>との内積であり、この値が<math>0</math>であるということは、これらが直行していることを意味し、直線が平面と交わらないか、平面上にあることとなる。
* 2平面の交差
**平面<math>\Pi_1 : a_1 x + b_1 y + c_1 z + d_1 = 0</math> と平面<math>\Pi_2 : a_2 x + b_2 y + c_2 z + d_2 = 0</math>とが交わる時、[[w:二面角|二面角]]を<math>\varphi</math>(ただし、<math>0\le \varphi \le \pi/2.</math>)とすると、以下の式が成立する。
**:<math>\cos \varphi = \frac{\left\vert a_1 a_2 + b_1 b_2 + c_1 c_2 \right\vert}{\sqrt{a_1^2+b_1^2+c_1^2}\sqrt{a_2^2+b_2^2+c_2^2}}</math>
* 2平面の交線
**平面<math>\Pi_1 : a_1 x + b_1 y + c_1 z + d_1 = 0</math> と平面<math>\Pi_2 : a_2 x + b_2 y + c_2 z + d_2 = 0</math>とが交線として直線<math>l: \frac{x-x_0}p=\frac{y-y_0}q=\frac{z-z_0}r</math>を有するとき、以下の関係が成立。
**#平面1及び平面2が交線を有する条件: 平面が一致ないし平行ではない。
**#:したがって、平面<math>\Pi_1</math> と平面<math>\Pi_2</math>の各々の法線ベクトル:<math>\vec{n_1}</math>, <math>\vec{n_2}</math>について、<math>\vec{n_1} \neq{k\vec{n_2}}</math> (<math>k \neq{0}</math>)
**#:*二面角を<math>\varphi</math>として、<math>\cos \varphi \neq{1}</math>。
**#直線<math>l</math>の方向ベクトル:<math>\vec{m} = (p, q, r)</math>は、法線ベクトル:<math>\vec{n_1} = (a_1, b_1, c_1)</math>, <math>\vec{n_2} = (a_2, b_2, c_2)</math>と直行する。
**#:そのような、ベクトル:<math>\vec{m}</math>の一つとして、各々の成分が以下のものが存在する。
**#::<math>p = b_1 c_2 - b_2 c_1</math>
**#::<math>q = - a_1 c_2 + a_2 c_1</math>
**#::<math>r = a_1 b_2 - a_2 b_1</math>
**#直線<math>l</math>上の点<math>(x_0, y_0, z_0)</math>は、以下の等式を満たす。
**#::<math>a_1 x_0 + b_1 y_0 + c_1 z_0 + d_1 = 0</math>
**#::<math>a_2 x_0 + b_2 y_0 + c_2 z_0 + d_2 = 0</math>
**#:*<math> z_0 = 0</math>と置くなどして方程式を解き、<math>(x_0, y_0, z_0)</math>を一意に決めることができる。
**#上記2. 3.により直線<math>l: \frac{x-x_0}p=\frac{y-y_0}q=\frac{z-z_0}r</math>の式を得ることができる。
=== 球面の式 ===
* 中心座標<math>\displaystyle (a, b, c)</math>、半径''r''の球の方程式(標準形):
*:<math>\displaystyle (x-a)^2+(y-b)^2+(z-c)^2 = r^2</math>
*球面:<math>\displaystyle (x-a)^2+(y-b)^2+(z-c)^2 = r^2</math>上の点<math>(x_0, y_0, z_0)</math>で接する平面
*:<math>({a-x_0})({x-x_0})+({b-y_0})({y-y_0})+({c-z_0})({z-z_0})=0</math>
{{DEFAULTSORT:しよとうすうかくこうしきしゆう 05かいせききか}}
[[Category:普通教育]]
[[Category:数学教育]]
[[Category:初等数学公式集|かいせききか]]
[[カテゴリ:幾何学]]
ceepzbii32h8h5562sdvuae3pd01z8u
Go/Goのプログラムがどんなアセンブリにコンパイルされるか?
0
32613
263413
204711
2024-11-13T05:44:24Z
Ef3
694
コンパイラを更新
263413
wikitext
text/x-wiki
{{Nav}}
= Goのプログラムがどんなアセンブリにコンパイルされるか? =
Goは簡素化された構文とキャッシュの使用により、非常に高速にコンパイルされますが、(中間コードではなく)ネイティブな機械語を生成します。
では、実際にどのようなコードが生成されるかを検証してみましょう。
== Hello, World を逆アセンブル ==
;[https://play.golang.org/p/X0_wfzwyj-E hello.go]:<syntaxhighlight lang=go copy>
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
</syntaxhighlight>
上のような単純で完全なプログラム hello.go を用意します。
:<syntaxhighlight lang=shell>
% go tool compile -o hello.o hello.go
</syntaxhighlight>
: <code>hello.o</code>にコンパイル結果が出力されますが、これは。
:<syntaxhighlight lang=shell>
% file fibo.o
fibo.o: current ar archive
</syntaxhighlight>
ar(1) のアーカイブです。
:<syntaxhighlight lang=shell>
% ar tv hello.o
rw-r--r-- 0/0 92 Jan 1 09:00 1970 __.PKGDEF
rw-r--r-- 0/0 6447 Jan 1 09:00 1970 _go_.o
</syntaxhighlight>
展開してみても
:<syntaxhighlight lang=shell>
% ar xv hello.o
x - __.PKGDEF
x - _go_.o
% file __.PKGDEF _go_.o
__.PKGDEF: data
_go_.o: data
</syntaxhighlight>
:と、素性はわかりませんが
: go tool objdump という Go の逆アセンブラーは、この形式を理解できます(-S はソースも併せて表示するオプションです)。
:<syntaxhighlight lang=shell>
% go tool objdump -S hello.o > hello.objdump
</syntaxhighlight>
;hello.objdump:<syntaxhighlight lang=c-objdump>
func main() {
0x14f1 493b6610 CMPQ 0x10(R14), SP [2:2]R_USEIFACE:type.string [2:2]R_USEIFACE:type.*os.File
0x14f5 7656 JBE 0x154d
0x14f7 4883ec40 SUBQ $0x40, SP
0x14fb 48896c2438 MOVQ BP, 0x38(SP)
0x1500 488d6c2438 LEAQ 0x38(SP), BP
fmt.Println("Hello, World")
0x1505 440f117c2428 MOVUPS X15, 0x28(SP)
0x150b 488d1500000000 LEAQ 0(IP), DX [3:7]R_PCREL:type.string
0x1512 4889542428 MOVQ DX, 0x28(SP)
0x1517 488d1500000000 LEAQ 0(IP), DX [3:7]R_PCREL:main..stmp_0<1>
0x151e 4889542430 MOVQ DX, 0x30(SP)
return Fprintln(os.Stdout, a...)
0x1523 488b1d00000000 MOVQ 0(IP), BX [3:7]R_PCREL:os.Stdout
0x152a 488d0500000000 LEAQ 0(IP), AX [3:7]R_PCREL:go.itab.*os.File,io.Writer
0x1531 488d4c2428 LEAQ 0x28(SP), CX
0x1536 bf01000000 MOVL $0x1, DI
0x153b 4889fe MOVQ DI, SI
0x153e e800000000 CALL 0x1543 [1:5]R_CALL:fmt.Fprintln
}
0x1543 488b6c2438 MOVQ 0x38(SP), BP
0x1548 4883c440 ADDQ $0x40, SP
0x154c c3 RET
func main() {
0x154d 0f1f4000 NOPL 0(AX)
0x1551 e800000000 CALL 0x1556 [1:5]R_CALL:runtime.morestack_noctxt
0x1556 eb99 JMP main.main(SB)
</syntaxhighlight>
: ターゲットは AMD64 なのですが、あまり見慣れないニーモニックだと思います。
: これは、Plan9 のアセンブラフォーマットでIntelともAT&Tとも違います。
: レジスタは8086の頃にあったものならば8086当時の名前で、AMD64で追加されたレジスタはRnnの形式で表示されます。
: 演算や転送の幅は SUB'''Q''' や MOV'''L''' のようにオペレーションの末尾の文字で指定されます。
よく見ると、ソースの fmt.Println("Hello, World") が、fmt.Fprintln(os.Stdout,) に置き換えられておりインライン展開が行われていることがわかります。
Goはコンパイラーですが、コンパイラー自体がGoで書かれ、ソースコードとともに配布されており、他にも
go tool nm
や
go tool pack
の様なハウスキーピング用のコマンドがあります(機会を見て紹介します)。
{{Nav}}
== 脚註 ==
<references />
== 参考文献 ==
* {{Cite web
|url=https://golang.org/doc/asm
|title=A Quick Guide to Go's Assembler
|accessdate=2021/10/22
}}
58jmztimwlv5zqjvbunw2q7hr3vp822
利用者:Kwawe
2
34770
263383
262764
2024-11-12T12:52:15Z
Kwawe
68789
/* 現在執筆中の内容 */
263383
wikitext
text/x-wiki
※2022年6月にwikibooksに登録しております。
== Wikibooksの記述では ==
# 中学生高校生向けの新規執筆・改定執筆のWikibooksは敬体で記述しています。新課程の自然科学ほぼ全般(物理・生物・地学・理数探究基礎)、社会科学(公民)、人文科学全般、保健体育・家庭科を記述しています。
# 本文記述は、冗長表現をなくしています。詳しくは、国語表現の「[[高等学校国語表現/わかりやすい文を書く|わかりやすい文を書く]]」を参照してください。
# 大人向け法律学(刑法など)のWikibooksは、常体で記述しています。
# 大人向け経済原論(ミクロ経済学など)のWikibooksは、敬体で記述しています。
== 教科書 ==
Wikibooksの教科書目録の作成などを新課程版に更新しています。
当方、高等学校の旧課程教科書は数学・自然科学(物理・化学・生物・地学)・商業の一部・福祉の一部・公民・国語表現・人文科学(地理・歴史)の教科書を持参しています。
2023年からの新課程用は公共、歴史総合・日本史探究・世界史探究、家庭総合、理数探究基礎、生物全5冊、政治経済、数学[第一、数研の最新シリーズ]の教科書を持参しています。
※基本、私の執筆するページは資料出所と出典を必ず掲載します。たとえそれが文部科学省の教科書だとしてもです。
== wikibooks執筆担当科目 ==
主に、高校生の教科書を中心に執筆していますが、中学生の実技教科、一般向けの経済原論も執筆しています。
執筆に時間がかかる科目「物理」「生物」「地歴の探究科目」「公共」は、更新頻度が減ります。
* [[高等学校理科 物理基礎|高等学校 物理基礎]] [全般]
* [[高等学校 物理|高等学校物理]] [全般]
* [[高等学校 生物基礎]] [全般]
* [[高等学校 生物]] [全般]
* [[高等学校 地学基礎]] [全般]
* [[高等学校 地学]] [全般]
* [[高等学校 理数探究基礎]] [全般](3月中旬以降から執筆)
* [[高等学校国語表現]] [全般]
* [[高等学校地理探究]] [全般]
* [[高等学校公共]] [全般]
* [[高等学校倫理]] [全般]
* [[ミクロ経済学]] [全般]
* [[高等学校世界史探究]] [全般]
* [[高等学校歴史総合]] [全般](ほぼ内容完成)
* [[高等学校家庭総合]] [全般]
* [[中学校音楽]] [全般]
* [[中学校家庭]] [全般](衣生活と食生活は完成時期不明。)
* [[中学校保健体育]] [全般]
* [[高等学校保健体育]] [座学編・実技編両方全般]
* [[高等学校日本史探究]] [全般](2023年7月下旬以降執筆予定)
今後、順次執筆科目は増加予定です。
また、時期は未定ですが、看護とかも執筆していきたいと思います。(2023年2月04日追記)
== 高校生に向けてメッセージ ==
私達は日本人ですから、日本語の文章でまず意味を理解しないと文字式や数式・公式も当然理解出来ません。そして、日本語の語彙を覚えないと当然国語の読解問題の記述問題も解けません。以上、私、当時元文系の高校生から見た視点です(大学卒業後、現在社会人)。あくまで、文字式や数式はイメージ的には図形と似たような感じで、これらをイラスト化にしているに過ぎません。
== 現在執筆中の内容 ==
★日本史探究
* [[高等学校日本史探究/古代国家の形成Ⅰ|古代国家の形成Ⅰ]](内容を大幅加筆修正)
* [[高等学校日本史探究/古代国家の形成Ⅱ|古代国家の形成Ⅱ]](新規執筆)
* [[高等学校日本史探究/古代国家の形成Ⅲ|古代国家の形成Ⅲ]](新規執筆)
== 今年執筆予定の内容 ==
※予定よりかなり遅れており、変更の可能性もあります。
== リンク集 ==
* https://jawikibooks.wikiscan.org/users
rav0058rh5holo3wnakfk11g160lyvq
高校物理 電磁気学
0
35532
263406
262721
2024-11-13T02:06:59Z
~2024-12188
84908
/* 磁気 */
263406
wikitext
text/x-wiki
{{pathnav|高等学校の学習|高等学校理科|高等学校 物理|pagename=電磁気学|frame=1|small=1}}
=電気=
== クーロン力(静電気力) ==
離れた2個の無限に小さい帯電体(点電荷)の間に働く力を'''クーロン力'''('''静電気力''')といい,原点に点電荷<math>Q</math>があるとき,そこから<math>\overrightarrow r</math>の位置に置かれた点電荷<math>q</math>の受ける力<math>\overrightarrow F</math>は
:<math>\overrightarrow F = k\frac{Qq}{r^2}\left(\!\frac{\overrightarrow r}{r}\!\right)</math> (1.1)
である。<math>k</math>はクーロン力の比例定数とよばれ,<math>k =\frac{1}{4\pi\varepsilon_0}\fallingdotseq 8.99 \times 10^9 \,\ \mathrm{N\cdot m^2/C^2}</math>である(<math>\varepsilon_0</math>:真空の誘電率)。
:<math>F > 0</math> のときは、<math>Q,\ q</math> は同符号なので、点電荷に働く力は斥力であり、<math>F < 0</math> のときは、<math>Q,\ q</math> は異符号なので、点電荷に働く力は引力である。
== 電場 ==
帯電体がある空間に、電荷を置くとその電荷は静電気力を受ける。これは帯電体が空間に影響を与え、電荷に力が加わったと考えることができる。このように、静電気力がはたらく空間の状態を'''電場'''('''電界''')という。
空間内の位置<math>\overrightarrow r</math>に置いた十分小さい電荷<math>q</math>が力<math>\overrightarrow F(\overrightarrow r)</math>を受けたならば,その位置の電場は単位電荷あたりの力,すなわちベクトル
:<math>\overrightarrow E(\overrightarrow r)=\frac{\overrightarrow F(\overrightarrow r)}{q}</math>(1.2)
で与えられる。(1.2)を変形すると
:<math>\overrightarrow F(\overrightarrow r)= q \overrightarrow E(\overrightarrow r)</math>. (1.2)<math>'</math>
(1.2)<math>'</math>は,電場<math>\overrightarrow E(\overrightarrow r)</math>中で点<math>\overrightarrow r</math>に置かれた電荷<math>q</math>が受ける力を指す。この小電荷<math>q</math>を試験電荷という。
=== 点電荷の作る電場 ===
[[ファイル:VFPt_plus_thumb.svg|サムネイル|150x150ピクセル|正電荷の周りの電荷の向き]]
以上のように定義された電場がどのように生み出されるのかについて考えよう。静止した点電荷<math>Q</math>があったとき,<math>Q</math>はそこから<math>\overrightarrow r</math>の位置に
:<math>\overrightarrow E(\overrightarrow r)=\frac{\overrightarrow F(\overrightarrow r)}{q}=k\frac{Q}{r^2}\left(\!\frac{\overrightarrow r}{r}\!\right)</math> (1.3)
の電場を生み出す。電場の大きさは
:<math>E = k\frac{|Q|}{r^2}</math> (1.3)<math>'</math>
である。
=== 重ね合わせの原理 ===
[[ファイル:電場の重ね合わせ.svg|サムネイル|220x220ピクセル|電場の重ね合わせ]]
<math>\overrightarrow r</math>の位置に複数の点電荷がつくる電場<math>\overrightarrow E(\overrightarrow r)</math>は,それぞれの点電荷がつくる電場<math>\vec{E_i}(\overrightarrow r)</math>のベクトル和である。
:<math>\overrightarrow E(\overrightarrow r)=\sum_{i}\vec{E_i}(\overrightarrow r)</math>. (1.4)
===電気力線===
'''電気力線'''とは電場の方向を接線とする曲線である。
'''電場に垂直な平面を貫く電気力線の単位面積あたりの本数は、電場の強さの値と等しいものとする'''。
電気力線には、以下のような性質がある。
*正電荷から出て負電荷に入る
*電場が強い場所では密である
物理基礎で扱った静電誘導・静電遮蔽・誘導分極は、電気力線を用いることでベクトルの引き算として説明することができる。
一般に、'''閉曲面を貫く電気力線の本数は不変'''である。
例)
全体に強さEの電場が一様に掛けられた半径rの球の中心に電気量Qの点電荷を置く。<br>
クーロンの法則の比例定数をkとすると電場の強さは<math>E = k\frac{Q}{r^2}</math>である。よって、球面のうち表面積が1m<sup>2</sup>の領域を貫く電気力線の本数は<math>k\frac{Q}{r^2}</math>本である。<br>
球の表面積は<math>4\pi r^2</math>であるので、球面全体を貫く電気力線の本数は<math>k\frac{Q}{r^2} \cdot 4\pi r^2 = 4\pi kQ</math>と求まる。この式に半径rは含まれないので、電気力線の本数は閉曲面の形状に依らないことがわかる。
ここで、'''誘電率'''εを<math>\varepsilon = \frac{1}{4\pi k}</math>と定義すると、この事実は以下のように表せる。
:誘電率εの空間に置かれた電気量Qの電荷を囲む閉曲面を貫く電気力線の本数は、常に<math>\frac{Q}{\varepsilon}</math>である。('''ガウスの法則''')
クーロンの法則の比例定数kに物理定数としての名前がついていないのは、誘電率と定数のみを用いて表すことができるからである。
なお、真空中で考えるとき、クーロンの法則の比例定数と誘電率はそれぞれ<math>k_0, \varepsilon_0</math>と置かれることが多い。
ガウスの法則を用いると、電場の強さEは閉曲面の表面積をSとして、<math>E = \frac{Q}{\varepsilon S}</math>と表せる。
*等電位面
==電位==
電場中に置かれた電荷が静電気力(クーロン力)を受けて運動するとき,静電気力は電荷に対して仕事する。静電気力は保存力なので,その仕事は重力がする仕事と同様,始点と終点の位置によって決まり,途中の経路によらない。したがって,重力と同様に静電気力による位置エネルギーが定義できる。電場において,重力場における「高さ」に対応する概念が電位である。
<math>xy</math>平面を水平面に,鉛直上向きに<math>z</math>軸をとり,<math>-z</math>方向を向いた一様な電場<math>\overrightarrow E =(0,\ 0,\ -E)</math>を考える。この電場から電荷<math>q</math>の受ける力は<math>q\overrightarrow E</math>,これに逆らって電荷をゆっくり運ぶ力は<math>-q\overrightarrow E =(0,\ 0,\ qE)</math>.この電荷が<math>r</math>の位置で持つ位置エネルギーは,この力<math>-q\overrightarrow E</math>で<math>q</math>を基準点(原点O)から<math>\overrightarrow r</math>まで運ぶ仕事でそれは運ぶ経路によらず<math>U(\overrightarrow r)= -q\overrightarrow E\cdot\overrightarrow r = qEz</math>.そこで'''電位'''を単位電荷あたりの位置エネルギー
:<math>V(\overrightarrow r)= U(\overrightarrow r)\div q = Ez</math>
で定義する。
重力が等高面(位置エネルギー一定の面)に垂直で下(位置エネルギーの低くなる向き)を向いているのと同様,'''電場は等電位面に垂直で電位の低くなる向き'''を向いている。
一般の静電場の場合も同様で,<math>r</math>位置で電荷<math>q</math>がもつ位置エネルギーが,電場から受ける<math>q\overrightarrow E</math>に逆らって<math>-q\overrightarrow E</math>を加え,基準点<math>\vec{r_0}</math>からその点<math>\overrightarrow r</math>まで電荷をゆっくり運ぶ仕事
:<math>U_\mathrm{C}(\overrightarrow r)=\int _{r_0}^r -q\overrightarrow E\cdot d\overrightarrow r = -q\int _{r_0}^r \overrightarrow E\cdot d\overrightarrow r</math> (1.5)
で定義される。静電気力が保存力であるためこの積分は<math>\vec{r_0}</math>から<math>\overrightarrow r</math>への経路によらない。そこで,'''電位'''を'''単位電荷あたりの静電気力による位置エネルギー'''
:<math>V(\overrightarrow r)=\frac{U(\overrightarrow r)}{q}= -\int _{r_0}^r \overrightarrow E\cdot d\overrightarrow r</math> (1.6)
で定義する。つまり,ある点の電位とは,基準点からその点まで電荷をゆっくり運ぶために外力が単位電荷あたりにせねばならぬ仕事のことである。この定義より質量<math>m</math>,電荷<math>q</math>の粒子に対する電場中でのエネルギー保存則は次のように表される。
:<math>\frac{1}{2}mv^2 + qV =</math>一定.(1.7)
また定義より,電荷<math>q</math>を電場の力<math>q\overrightarrow E</math>に抗して<math>\vec{r_1}</math>から<math>\vec{r_2}</math>まで運ぶために外力のする仕事<math>W_\mathrm{EF}</math>は
:<math>W_\mathrm{EF}= q(V(\vec{r_2})-V(\vec{r_1}))= -q\int _\vec{r_1}^\vec{r_2} \overrightarrow E\cdot d\overrightarrow r</math> (1.8)
で与えられる。この<math>V(\vec{r_2})-V(\vec{r_1})</math>を'''電位差'''又は'''電圧'''という。つまり2点間の電位差(電圧)とは電場に抗して電荷をその2点間で運ぶために単位電荷あたり要する仕事である。
点電荷<math>Q</math>が原点にあるときの電位を求めよう。このとき電場は(1.3)で与えられるから,(1.6)は
:<math>V(\overrightarrow r)= -\int _{r_0}^r k\frac{Q}{r^2}\frac{(\overrightarrow r\cdot dr)}{r}= -\int _{r_0}^r k\frac{Q}{r^2}dr= kQ\left(\frac{1}{r}-\frac{1}{r_0}\right)</math>
となる。基準点を無限遠(<math>r_0\to\infty</math>)にとると,点電荷<math>Q</math>がとる電場の電位は
:<math>V(\overrightarrow r)= k\frac{Q}{r}</math>. (1.9)
== コンデンサー ==
[[ファイル:コンデンサー_充電の仕組み.svg|サムネイル|500x500ピクセル|コンデンサーの充電の仕組み]]
図のように2枚の金属板を平行に向かい合わせて、電源をつなげると、自由電子が導線を通り金属板に電荷が蓄えられる。
平行板コンデンサーの2つの金属板にそれぞれ <math>Q,\ -Q</math> の電荷が蓄えられているとき、極板間の電位差 <math>V</math> は次の関係がある。
:<math>Q = CV</math>
ここで、<math>C</math> をコンデンサーの電気容量という。 電気容量の単位はファラド <math>\mathrm F</math> が使われる。
=== 平行板コンデンサーの電気容量 ===
[[ファイル:平行板コンデンサー_電場.svg|サムネイル|400x400ピクセル|平行板コンデンサーの電場]]
極板の間隔 <math>d </math> で面積 <math>S</math> の平行板コンデンサーの電気容量 <math>C</math> を求める。
コンデンサーに電荷 <math>Q </math> が蓄えられているとき、極板間の電位差を <math>V</math> とする。このとき、極板間の電場 <math>E</math> は <math>E = \frac V d</math> である。
極板から出る電気力線の本数 <math>N</math> は <math>N = SE = S \frac V d</math> である。
また、ガウスの法則より、 <math>N = \frac Q \varepsilon</math> である。
すなわち、電気力線の本数について
:<math>N = \frac Q \varepsilon = S \frac V d </math>
より、 <math>C = \frac Q V = \varepsilon \frac S d</math> を得る。
=== コンデンサーの蓄えるエネルギー ===
電気容量 <math>C </math> のコンデンサーが <math>Q </math> の電荷を蓄え、極板間の電位差が <math>V </math> のとき、コンデンサーの蓄えるエネルギー <math>U</math> を求める。
コンデンサーに電荷 <math>Q' </math> の電荷が蓄えられたとき、極板間の電位差は <math>V' = \frac{Q}{C}</math> である。この状態で微小電荷 <math>dQ'</math> を運ぶために必要な仕事は <math>V' dQ' = \frac{Q'}{C}dQ'</math> である。これを <math>Q'</math> が 0 から <math>Q</math> になるまで積分すればコンデンサーの蓄えるエネルギー <math>U</math> が求まる。
:<math>U = \int_0^Q \frac{Q'}{C}dQ' = [\frac{Q'^2}{2}]_0^Q = \frac 1 2 \frac{Q^2}{C}</math>
したがって、<math>U = \frac 1 2 \frac{Q^2}{C} = \frac 1 2 CV^2 = \frac 1 2 QV</math> である。
=== コンデンサーの接続 ===
コンデンサーを並列につなげたとき、このコンデンサー全体としてみたときの電気容量を求める。
電気容量 <math>C_1 ,\,C_2 </math> の電気容量を並列につなげ、電圧 <math>V </math> の電源をつなげる。
それぞれのコンデンサーに蓄えられる電荷 <math>Q_1 ,\,\ Q_2 </math> は
:<math>Q_1 = C_1V,\,Q_2 = C_2 V</math> である。
コンデンサーが蓄えた電荷の合計は <math>Q_1 + Q_2 =C_1V + C_2 V = (C_1 + C_2)V</math> である。
コンデンサー全体としてみたときの合成電気容量 <math>C </math> について <math>Q_1 + Q_2 = CV</math> となるので、これと比較して
:<math>C = C_1 + C_2</math>
を得る。
コンデンサーを直列につなげたとき、このコンデンサー全体としてみたときの電気容量を求める。
電気容量 <math>C_1 ,\,C_2 </math> の電気容量を直列につなげ、電圧 <math>V </math> の電源をつなげる。2つのコンデンサーが蓄える電荷は等しい<ref>2つのコンデンサーの間の電荷保存則より、2つのコンデンサーが蓄える電荷は等しい。</ref>ので、これを <math>Q</math> とする。それぞれのコンデンサーの電圧 <math>V_1,\ V_2 </math> は
:<math>V_1 = \frac Q {C_1} ,\,V_2 \frac{Q}{C_2}</math>
である。この和が電源の電圧 <math>V </math> に等しいので
:<math>V = V_1 + V_2 = \frac{Q}{C_1} + \frac{Q}{C_2}</math>
コンデンサー全体としてみたときの合成電気容量 <math>C</math> は <math>V = \frac Q C</math> となるので、これと比較して
:<math>\frac 1 C = \frac{1}{C_1} + \frac{1}{C_2}</math>
である<ref>コンデンサーの合成電気容量の式の形は、抵抗の合成抵抗のものと、直列・並列が逆になっている。</ref>。
=== 金属板や誘電体を差し込んだコンデンサー ===
誘電体の誘電率 <math>\varepsilon</math> と真空の誘電率 <math>\varepsilon</math> の比 <math>\varepsilon_\mathrm r = \frac{\varepsilon}{\varepsilon_0}</math> を'''比誘電率'''という。
真空中で極板面積 <math>S</math>、極板間隔 <math>d</math> の平行板コンデンサーの電気容量 <math>C_0</math> は <math>C_0 = \varepsilon_0 \frac S d</math> である。
このコンデンサーの極板間に比誘電率 <math>\varepsilon_\mathrm r</math> の誘電体をすきまなく挿入したとき、コンデンサーの電気容量 <math>C</math> は
:<math>C = \varepsilon_\mathrm r \varepsilon_0 \frac S d = \varepsilon_\mathrm r C_0</math>
である。
== 直流回路 ==
===電流===
導体断面を単位時間あたりに通過する電気量(電荷)を'''電流'''({{Lang-en-short|electric current}})という〔単位:'''A'''('''アンペア''')〕。時刻<math>t</math>において,電気量を<math>Q(t)</math>とすると,微小時間<math>\mathit{\Delta}t</math>間に電荷が<math>Q(t+\mathit{\Delta}t)-Q(t)</math>通過するとき,電流<math>I(t)</math>は
:<math>I(t)=\lim_{\mathit{\Delta}t\to 0}\frac{Q(t+\mathit{\Delta}t)-Q(t)}{\mathit{\Delta}t}=\frac{dQ(t)}{dt}</math>
である。また,断面積<math>S</math>〔m<math>^2</math>〕,単位体積あたりの自由電子数が<math>n</math>〔個/m<math>^2</math>〕の導体を電流が流れるとき,その電流の大きさ<math>I</math>〔A〕は電気素量を<math>e</math>〔C〕,自由電子の速さを<math>v</math>〔m/s〕として
:<math>I=enSv</math>〔A〕
である。
=== 電池の内部抵抗 ===
電池の内部にもわずかに電気抵抗は存在する。これを電池の'''内部抵抗'''という。
起電力 <math>E </math> 、内部抵抗 <math>r</math> の電池に電流 <math>I</math> が流れるとき、電池の端子電圧 <math>V</math> は、内部抵抗による電圧降下は <math>rI</math> であるから
:<math>V = E -rI</math>
である。
=== ジュール熱と消費電力 ===
電圧を<math>V</math>,電流を<math>I</math>とすると,単位時間あたりの発熱量(ジュール熱)<math>P</math>は
:<math>P=IV</math>.
起電力<math>E</math>、内部抵抗<math>r</math>の電池に<math>R</math>の抵抗をつなぐとき、抵抗での電位差<math>V</math>はオームの法則より<math>V=RI</math>,回路に流れる電流<math>I</math>は<math>I = \frac{E}{r+R}</math>であるから、抵抗での消費電力 <math>P</math> は
:<math>P = RI^2 = \frac{RE^2}{(r+R)^2}</math>
である。
ここで、<math>R</math> を変えたときの消費電力<math>P</math>の最大値を求める。
:<math>P = \frac{RE^2}{(r+R)^2} = \frac{E^2}{\frac{r^2}{R} + 2r +R}\cdots\cdots (*)</math>
*解1
:<math>(*)</math>の両辺を<math>R</math>で微分すると
::<math>\frac{dP}{dR}=\frac{-E^2(-\frac{r^2}{R^2}+1)}{(\frac{r^2}{R} + 2r + R)^2}=\frac{E^2(r^2-R^2)}{(r^2+2Rr+R^2)^2}=\frac{E^2(r-R)}{(r+R)^3}</math>.
:<math>\frac{dP}{dR}=0</math>のとき
::<math>R=r</math>.
:よって<math>R>0</math>における<math>P</math>の増減表は以下のようになる。
::<math>\begin{array}{c|c}R & (0)\cdots\; r\;\cdots \\ \hline \frac{dP}{dR} & \quad\ +\ \ 0\ \ - \\ \hline P & \quad\ \nearrow\frac{E^2}{4r}\searrow \\ \end{array}</math> よって,<math>R=r</math>のとき極大値<math>\frac{E^2}{4r}</math>をとる。
*解2
:相加平均・相乗平均より
::<math>\frac{r^2}{R} + R \ge 2\sqrt{\frac{r^2}{R}\cdot R} = 2r</math>. (等号成立は <math>\frac{r^2}{R} = R</math> すなわち <math>R = r</math> のとき)
つまり、 <math>R = r</math> で <math>\frac{r^2}{R} + R</math> は最小値 <math>2r</math> を取る。すなわち、<math>P = \frac{E^2}{\frac{r^2}{R} + R + 2r}</math> は最大値 <math>\frac{E^2}{4r}</math> を取る。
===キルヒホッフの第1法則===
任意の結接点において,'''流入電流の和は流出電流の和に等しい'''。
:<math>\sum_\mathrm{inflow}I_i=\sum_\mathrm{outflow}I_{i'}'</math>.
===キルヒホッフの第2法則===
任意の閉回路に対して,'''起電力'''({{Lang-en-short|electromotive force}})'''の和は電圧降下'''({{Lang-en-short|voltage drop}})'''の和に等しい'''。
:<math>\sum_\mathrm{closed\ circuit}V_\mathrm{emf}=\sum_\mathrm{closed\ circuit}V_\mathrm{drop}</math>.
===抵抗の測定===
====メートルブリッジ====
====ホイートストンブリッジ====
=== 定常状態 ===
==半導体==
必要があれば[[高等学校 化学基礎]]及び[[高等学校 化学]]を参照。
===半導体の種類===
'''半導体'''は、導体と絶縁体の中間の通電性を持つ物質である。'''珪素(シリコン)'''はその代表格である。
珪素(Si)の結晶はダイヤモンド型共有結合結晶であり、非常に硬く熱に強い。そのため、'''セラミック'''として様々な用途で用いられる。(人工衛星の外壁、庖丁、陶器etc.)詳しくは[[高校化学 14族元素#ケイ素|無機化学]]を参照。ゲルマニウム(Ge)も共有結合結晶をつくる元素である。Si、Geともに価電子数は4で、これらを互いに共有することによって共有結合をなす。
SiやGeは、常温では抵抗率が大きく通電性が低いものの、高温下では自由電子が生じて通電性が高まる。このような半導体を'''真性半導体'''という。真性半導体に微量の不純物を入れると、通電性が高まる。このような半導体を'''不純物半導体'''という。
電流の担い手を'''キャリア'''という。
真性半導体に微量のアルミニウム(Al)やインジウム(In)などを混ぜたものを'''p型半導体'''という。AlやInは価電子を3つしか持たないので、共有結合をするには電子が一個不足し、電子のない所ができる。これを'''正孔(ホール)'''という。電場を与えると、電子が移動して正孔を埋める。移った電子がいたところが新たな正孔となるのでまた別の電子が移動し・・・と繰り返すことによりホールが電場の向きに移動し、電流の担い手となる。よって、'''p型半導体のキャリアは正孔'''である。p型のpは正孔が正電荷(positive charge)であることに由来する。
真性半導体に微量の燐(P)やアンチモン(Sb)などを混ぜたものを'''n型半導体'''という。PやSbは価電子を5つ持つので、4つが共有結合に加わり1つ余ってしまう。この余った1つは結晶を自由に動き回ることによって電流の担い手となる。よって、'''n型半導体のキャリアは電子'''である。n型のnは電子が負電荷(negative charge)であることに由来する。
===ダイオード===
p型とn型を接合('''pn接合''')し、両端に電極をつけた部品を'''半導体ダイオード'''という。接合した面を'''接合面'''という。
半導体ダイオードは一方向にのみ電流を流す作用('''整流作用''')を持つ。整流作用は、交流電流から直流電流への変換や、AEDが電気ショック前に行う充電などに応用されている。
ダイオードの'''順方向'''に電圧を加えると、電場によってp型の中の正孔がn型へ、n型の中の電子がp型へ引かれ、pn接合面で一対づつ結合して消える('''再結合''')。その一方で、電極からはキャリアが供給され続ける。よって、電流が流れ続ける。
ダイオードの'''逆方向'''に電圧を加えると、電場によってp型の中の正孔はp型側の電極へ、n型の中の電子はn型側の電極へ引かれ、p型で負電荷、n型で正電荷が過剰になってpn接合部付近においてp型とn型の間に電位差が生じる。このとき、電流は止まる。pn接合面付近にキャリアが殆ど存在しない領域が発生し、この領域を'''欠乏層'''という。
半導体に光が当たると半導体を構成する原子から電子が離れ、正孔が生まれる。このとき、pn接合面付近に電位差が生まれるのでn型側の電極に電子、p型側の電極に正孔が集まる。よって、p型が正極、n型が不極の電池となる。このような仕組みの電池を'''太陽電池'''という。
太陽電池とは逆に電気を光に変換する半導体部品を'''発光ダイオード'''という。砒化ガリウム(GaAs)のような半導体のpn接合に順方向の電圧を加えると、キャリアが再結合する際に発光する。発光ダイオードは太陽電池と同様に光を当てると起電力を生じる。このとき、発光する色と同色の光を当てると起電力が大きくなる。
===トランジスタ===
電気信号を増幅する働き('''増幅作用''')を持つ電子部品を'''トランジスタ'''という。
トランジスタは3つの不純物半導体を組合せた部品であり、p型2つの間にn型を挟んだ'''pnp型トランジスタ'''とn型2つの間にp型を挟んだ'''npn型トランジスタ'''が存在する(pnp型は'''バイポーラートトランジスタ'''ともいう)。トランジスタを構成する3つの部分をそれぞれ'''エミッタ'''(E)、'''ベース'''(B)、'''コレクタ'''(C)という。
npn型のC-E間に電圧を加えた状態でE-B間に順方向の電圧を加えると、EからBに向かってキャリアが送り込まれ、その大部分はCへと流れ込む。よって、Bの電極に流れる電流はCの電極に流れる電流よりも非常に大きな値となる。これを利用すると、'''B電流の小さな変化をC電流の大きな変化に変換できる'''。pnp型でも同様にして増幅作用を確かめられる。
トランジスタは、B電流の制御によりCに電流が流れる状態(ON)と全く流れない状態(OFF)を作ることができる。これをトランジスタの'''スイッチング作用'''という。
C電流のON-OFFによってデジタル信号を作り出すことができ、計算等の処理を電気回路で行うことができる。
===LSI===
コンピュータの黎明期には、トランジスタに相当するものとして'''真空管'''が用いられていた。これは当時画期的な電子部品だったが、真空管を用いたコンピュータは耐久性が低く、発熱しやすく、装置が巨大になるという欠点を抱えていた。
真空管に代わってトランジスタが用いられるようになると、コンピュータの小型化と演算回路の高速化が進んだ。
その後、多数のトランジスタやコンデンサー、抵抗などの電気素子を小さな基盤上に集積した'''集積回路(IC)'''が発明されると、コンピュータの小型化と高性能化は怒濤の早さで進んだ。1000個以上の素子を集積したICを特に'''大規模集積回路(LSI)'''というが、2024年現在では10億を超えるトランジスタを実装したLSIが量産されている。
集積回路内の回路素子は、半導体である珪素(Si)が酸化されると絶縁体(SiO<sub>2</sub>)に変わるという性質を利用している。シリコンウエハースを局所的に酸化し、微小領域を絶縁体で囲む。この中にp型・n型の領域を形成すると、互いに絶縁された多数の微小トランジスタが出来上がる。同じ表面にコンデンサーや抵抗も形成し、これらを配線することでICが完成する。
LSIの高機能化・高性能化・低消費電力化を実現するには、より微細な回路素子を高密度に集積することが求められる。処理工程の精密な制御技術と回路パターン形成のための精密な写真技術の進歩により、2024年現在では30nmを下回る寸法の回路パターンを持つものも量産されている。
LSIはCPU・RAMの主用部品だが、それ以外にも多様な部品に使われている。高速応答性が要求される領域では、砒化ゲルマニウム(GeAs)やガリウムインジウムリン(InGaP)といったシリコン以外の半導体を使ったLSIも用いられている。
===コンデンサーやダイオードを含む直流回路===
=磁気=
以下では磁気を扱う。その際[[w:クロス積|外積(ベクトル積)]]を用いることがあるので必要に応じて参照されたい。
==磁気力と磁場==
磁石に鉄粉をかけると磁石の両端によく付着する。この鉄粉を吸引する力の原料力とみられる部分(最も強い部分)を磁石の'''磁極'''という。磁極どうし或いは磁石どうし,電流どうし,電流と磁石が互いに引き合い或いは斥け合う力のことを'''磁気力'''('''磁力''')という。磁極の強さを表す量を'''磁気量'''〔Wb〕という。
電場が電荷に力を及ぼす空間の性質である一方,'''磁場'''('''磁界''')は運動している電荷に力を及ぼす空間の性質である。磁場は電場と同様に,大きさと向きを持つベクトルである。磁場ベクトル<math>\overrightarrow H</math>の点に,磁気量<math>m</math>〔Wb〕の磁極を置いたとき,この磁極に働く力を<math>F</math>〔N〕とすると
:<math>\overrightarrow H =\frac{\overrightarrow F}{m}</math>〔N/Wb〕(2.1)
が成り立つ。
===磁束密度===
'''磁束密度'''を<math>\overrightarrow B</math>とおくと,磁場<math>\overrightarrow H</math>と真空の透磁率<math>\mu _0</math>を用いると
:<math>\begin{align}\overrightarrow B & =\mu _0\overrightarrow H\\ & =\frac{\mu _0\overrightarrow F}{m}\ (\because (2.1))\end{align}</math>(2.2)
と表される。なお,この磁束密度<math>\overrightarrow B</math>のことを単に磁場と呼ぶこともある。
真空の透磁率は<math>\mu_0 = 1.26 \times 10^{-6} \fallingdotseq 4 \pi \times 10^{-7}</math>[N/A<sup>2</sup>]である。物質の比透磁率は<math>\mu_r = \frac{\mu}{\mu_0}</math>で求められる。地球大気の比透磁率はほぼ1であり、鉄の比透磁率は8000である。
==電流が作る磁場==
電流<math>\overrightarrow I</math>の流れている導線Cを微小区間に分割する。電流によって作り出される磁場を定めている'''ビオ・サヴァールの法則'''({{Lang-en-short|Biot–Savart law}})により,位置<math>\vec{r'}</math>にある微小区間<math>dl</math>の電流が位置<math>\overrightarrow r</math>に作る磁束密度は
:<math>d\overrightarrow B(\overrightarrow r)=\frac{\mu _0}{4\pi}\cdot\frac{\overrightarrow I\times(\overrightarrow r-\vec{r'})}{|\overrightarrow r-\vec{r'}|^3}dl</math>. (2.3)
電流全体の作る磁束密度は全微小区間からの寄与を足し合わせれば,つまり積分すれば求まる。
:<math>\overrightarrow B(\overrightarrow r)=\frac{\mu _0}{4\pi}\int\frac{\overrightarrow I\times(\overrightarrow r-\vec{r'})}{|\overrightarrow r-\vec{r'}|^3}dl</math>. (2.4)
===無限に長い直線電流===
[[File:Biot–Savart law long linear currents.png|thumb|right|225px|無限に長い直線電流]][[Image:Right hand rule.png|thumb|right|右ねじの法則]]
右図のように,電流にそって<math>z</math>をとり,磁場を求める点Pを通るように<math>x</math>軸をとると<math>(\overline{\mathrm{OP}}=r)</math>,<math>xyz</math>空間において<math>\overrightarrow r=(r,\ 0,\ 0).\ \vec{r'}=(0,\ 0,\ z')</math>とおくと<math>z</math>軸上の微小区間<math>[z',\ z'+dz']</math>の電流が点Pに作る磁束密度は[[w:クロス積|外積]]の性質より<math>\overrightarrow I</math>と<math>\overrightarrow r-\vec{r'}</math>に垂直,すなわち
:<math>d\overrightarrow B(\overrightarrow r)=(0,\ dB(r),\ 0)</math>
と<math>y</math>成分のみで,<math>|\overrightarrow r-\vec{r'}|=\sqrt{r^2 +{z'}^2}</math>であるから
:<math>dB(r)=\frac{\mu _0}{4\pi}\frac{I\sin\theta}{r^2 +{z'}^2}dz'=\frac{\mu _0I}{4\pi}\frac{rdz'}{(r^2+{z'}^2)^{\frac{3}{2}}}</math>.
よって電流全体が作る磁束密度<math>B</math>は(2.4)より
:<math>B(r)=\frac{\mu _0I}{4\pi}\int _{-\infty}^\infty \frac{rdz'}{(r^2+{z'}^2)^{\frac{3}{2}}}</math>.
ここで,<math>z'=r\tan\phi</math>とすると
:<math>\frac{dz'}{d\phi}=r\frac{\cos ^2\phi-\sin\phi(-\sin\phi)}{\cos ^2\phi}=\frac{r}{\cos ^2\phi}\quad\therefore dz'=\frac{rd\phi}{\cos ^2\phi}\quad\begin{array}{c|c}z' & -\infty\to \infty \\ \hline \phi & -\frac{\pi}{2}\to \frac{\pi}{2} \\ \end{array}</math>
であるから(置換積分)
:<math>B(r)=\frac{\mu _0I}{4\pi}\int _{-\frac{\pi}{2}}^\frac{\pi}{2} \frac{r\frac{rd\phi}{\cos ^2\phi}}{(r^2+r^2\tan^2\phi)^{\frac{3}{2}}}=\frac{\mu _0I}{4\pi}\int _{-\frac{\pi}{2}}^\frac{\pi}{2} \frac{\cos\phi}{r}d\phi=\frac{\mu _0I}{4\pi r}[\sin\phi]_{-\frac{\pi}{2}}^\frac{\pi}{2}=\frac{\mu_0 I}{2\pi r}</math>.
以上より直線電流が作る磁束密度は電流まわりに渦巻き状に分布し,電流から垂直距離<math>r</math>離れた位置では
:大きさ:<math>B(r)=\frac{\mu_0 I}{2\pi r}\Longleftrightarrow H(r)=\frac{I}{2\pi r}\ (\because(2.2))</math> (2.5)
:向き:<math>I</math>に垂直な面内で<math>I</math>に対して右回り('''右ねじの法則''')
===円形電流===
半径rの円形導線に大きさIの電流が流れるとき、円の中心での磁場の強さHは<math>H = \frac{I}{2r}</math>と表される。
導出は直線電流の場合と同様である。
===ソレノイド===
導線を密に巻いた十分に長い円筒状のコイルを'''ソレノイド'''という。
ソレノイドの作る磁場は、一定の間隔で並ぶ円形電流が周囲に作る磁場の重ね合わせと考えると、<math>H=nI</math>と求まる。但し、nはコイルの'''単位長さあたりの'''巻数である。
==磁場が電流に及ぼす力==
[[Image:Fleming's_Left_Hand_Rule.png|thumb|right|フレミングの左手の法則]]
磁束密度(磁場)<math>\overrightarrow B</math>が長さ<math>l</math>の電流<math>\overrightarrow I</math>に及ぼす力(電磁力,アンペール力)<math>\overrightarrow F</math>は
:<math>\overrightarrow F=l\overrightarrow I\times\overrightarrow B</math>
と表され,磁束密度<math>\overrightarrow B</math>と電流<math>\overrightarrow I</math>のなす角を<math>\theta</math>として[[w:クロス積|外積]]の性質より
:大きさ:<math>F=lIB\sin\theta</math> (磁場<math>\overrightarrow H</math>と真空の透磁率<math>\mu _0</math>を用いると(2.2)より<math>F=\mu _0lIH\sin\theta</math>)
:向き:'''フレミングの左手の法則'''に従う,或いは電流の向きと磁場の向きに垂直に立てた右ねじを電流の向きから磁場の向きに回したときに右ねじの進む向き
2つの平行電流が及ぼしあう力を求めてみよう。
十分に長い2本の平行導線P,Qをr[m]だけ離し、それぞれに大きさI<sub>1</sub>,I<sub>2</sub>の電流を流す。電流の向きが等しいとき、PがQのl[m]の部分に及ぼすアンペール力は、<math>F = I_2 B_1 l = I_2 \frac{\mu I_1}{ 2\pi r} l = \frac{\mu I_1 I_2}{2 \pi r}l</math>と求まる。このとき、QがPのl[m]の部分に及ぼすアンペール力はFと同じ大きさで同じ向きである。
電流の向きが反対のとき、及ぼしあうアンペール力の向きも反対となる。
==ローレンツ力==
一般に荷電粒子が磁場を横切ると,磁場から力を受けることが知られている。電場<math>\overrightarrow E</math>,磁束密度<math>\overrightarrow B</math>の中で,速度<math>\overrightarrow v</math>,電荷<math>q</math>の荷電粒子に働く力
:<math>\overrightarrow F=q(\overrightarrow E+\overrightarrow v\times\overrightarrow B)</math>,
特に磁束密度<math>\overrightarrow B</math>の中で速度<math>\overrightarrow v</math>,電荷<math>q</math>の荷電粒子に働く力
:<math>\overrightarrow F=q\overrightarrow v\times\overrightarrow B</math>
をローレンツ力({{Lang-en-short|Lorentz force}})という。磁束密度<math>\overrightarrow B</math>と速度<math>\overrightarrow v</math>のなす角を<math>\theta</math>として[[w:クロス積|外積]]の性質より
:大きさ:<math>F=qvB\sin\theta</math>
:向き:'''フレミングの左手の法則'''に従う,或いは正電荷のときに荷電粒子の速度の向きと磁場の向きに垂直に立てた右ねじを速度の向きから磁場の向きに回したときに右ねじの進む向き(負電荷では逆になる)
サイクロトロン・ベータトロン
==磁束==
閉曲線Cの正の向きを定め,その向きに右ねじを回してねじが進む向きにCの囲む面の法線ベクトル<math>\overrightarrow n</math>をとる。Cの囲む面の面積を<math>S</math>としてCを貫く磁束<math>\mathit{\Phi}</math>は
:<math>\mathit{\Phi}=\int\overrightarrow B\cdot\overrightarrow ndS</math>
特に<math>\overrightarrow B\cdot\overrightarrow n</math>が一様であるときは
:<math>\mathit{\Phi}=\overrightarrow B\cdot\overrightarrow nS=BS\cos\theta</math>.
==電磁誘導==
閉回路Cを貫く磁束が時間変化すると閉回路Cに'''誘導起電力'''が生ずる。その起電力<math>V_\mathrm{emf}</math>は
:<math>V_\mathrm{emf}=-\frac{d\mathit{\Phi}}{dt}</math>.
=== 渦電流 ===
=== 自己誘導 ===
=== 相互誘導 ===
== 交流 ==
===交流の発生===
コイルの回転
実効値
変圧器
===交流回路===
交流における電流・電圧・抵抗
コイルのリアクタンス・消費電力
コンデンサーのリアクタンス・消費電力
インピーダンス
共振
電気振動
{{DEFAULTSORT:てんしきかく}}
[[Category:高等学校教育]]
[[カテゴリ:電磁気学]]
ipf6v3bb5671kiprlx45pm18buqqsqe
Go/ジェネリクス
0
38819
263409
238975
2024-11-13T02:36:03Z
Ef3
694
校閲と推敲
263409
wikitext
text/x-wiki
{{Nav}}
=ジェネリクス=
Go言語では、ジェネリクスが導入される前は、インターフェースや具体的な型に依存した実装が主流でした。ジェネリクスが導入されても、従来の方法も引き続き使用できます。
== interfaceを使った実装 ==
以下はその一例として、ジェネリクスを使わずにスタックを実装する方法を示します。
;非ジェネリクス版スタック:
:<syntaxhighlight lang=go line copy>
package main
import (
"fmt"
)
// スタックの構造体
type Stack struct {
data []interface{}
}
// スタックに要素を追加
func (s *Stack) Push(item interface{}) {
s.data = append(s.data, item)
}
// スタックから要素を取り出す
func (s *Stack) Pop() interface{} {
item := s.data[len(s.data)-1]
s.data = s.data[:len(s.data)-1]
return item
}
// スタックの先頭の要素を取得(削除はしない)
func (s *Stack) Peek() interface{} {
return s.data[len(s.data)-1]
}
// スタックが空かどうかをチェックするメソッド
func (s *Stack) IsEmpty() bool {
return len(s.data) == 0
}
func main() {
// 空のスタックを作成
stack := Stack{}
// スタックに値を追加
stack.Push(10)
stack.Push("Hello")
stack.Push(3.14)
// スタックの内容を表示
for !stack.IsEmpty() {
item := stack.Pop()
fmt.Println("Popped:", item)
}
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
Popped: 3.14
Popped: Hello
Popped: 10
</syntaxhighlight>
この例では、<code>Stack</code>という構造体を定義し、<code>Push</code>で要素を追加し、<code>Pop</code>で要素を取り出します。<code>interface{}</code>型を使用することで、任意の型の要素をスタックに追加できます。ただし、実行時に型アサーションを使用して型を確認する必要があります。
== 型パラメータを使った実装 ==
Go言語におけるジェネリクス(型パラメータ)を利用したスタックの実装は次のようになります。
;ジェネリクス版スタック:
:<syntaxhighlight lang=go line copy>
package main
import (
"fmt"
)
// ジェネリクス化されたスタックの定義
type Stack[T any] []T
// スタックに要素を追加するメソッド
func (s *Stack[T]) Push(item T) {
*s = append(*s, item)
}
// スタックから要素を取り出すメソッド
func (s *Stack[T]) Pop() T {
item := (*s)[len(*s)-1]
*s = (*s)[:len(*s)-1]
return item
}
// スタックが空かどうかをチェックするメソッド
func (s *Stack[T]) IsEmpty() bool {
return len(*s) == 0
}
func main() {
// int型のスタックを作成
var intStack Stack[int]
// スタックに値を追加
intStack.Push(1)
intStack.Push(2)
intStack.Push(3)
// スタックから値を取り出して表示
for !intStack.IsEmpty() {
item := intStack.Pop()
fmt.Println(item)
}
// 文字列型のスタックを作成
var stringStack Stack[string]
// スタックに値を追加
stringStack.Push("apple")
stringStack.Push("banana")
stringStack.Push("cherry")
// スタックから値を取り出して表示
for !stringStack.IsEmpty() {
item := stringStack.Pop()
fmt.Println(item)
}
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
3
2
1
cherry
banana
apple
</syntaxhighlight>
このコードは、Go言語のジェネリクスを使ってスタックを実装しています。<code>Stack[T any]</code>という定義は、<code>T</code>という任意の型の要素を持つスタックを表します。
<code>Push</code>メソッドはスタックに要素を追加し、<code>Pop</code>メソッドはスタックから要素を取り出します。<code>IsEmpty</code>メソッドはスタックが空かどうかを確認します。
<code>main</code>関数では、<code>intStack</code>と<code>stringStack</code>という異なる型のスタックを作成し、それぞれのスタックに値を追加してから、要素を取り出して表示しています。これにより、異なる型の要素を持つジェネリックなスタックが正しく機能していることが示されています。
このコードを実行すると、<code>intStack</code>には1、2、3が、<code>stringStack</code>には"apple"、"banana"、"cherry"が順番に追加され、それらがスタックから取り出されて画面に表示されます。
== 型制約 ==
Go 1.18で追加された予約済識別子 <code>any</code> は、<code>interface{}</code>のエイリアスであり、全ての型と一致します。
ただし、すべての型を受け入れる<code>any</code>を使用すると、必要なメソッドを備えていない型のインスタンスまで受け付けてしまうため、型制約を使用することが推奨されます。
Go言語における型制約は、主にインターフェースを通じて行われます。Goにはジェネリクス制約を直接指定する仕組みはありませんが、インターフェースを使って特定の振る舞いを持つ型を制約することができます。
例えば、<code>fmt.Stringer</code>は<code>String()</code>メソッドを持つ型を表すインターフェースであり、これは標準パッケージの中で多く使用されます。これにより、<code>fmt.Print</code>などの関数は<code>fmt.Stringer</code>インターフェースを満たす型を引数に受け取ることができます。
;型制約:
:<syntaxhighlight lang=go line copy>
package main
import (
"fmt"
)
type Bin int
func (b Bin) String() string {
return fmt.Sprintf("%#b", int(b))
}
func Print[T fmt.Stringer](s []T) {
for _, v := range s {
fmt.Print(v, "\n")
}
}
func main() {
Print([]Bin{0b1101, 0b1010_0101})
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
0b1101
0b10100101
</syntaxhighlight>
このコードは、Go言語でのジェネリクスに型制約を加える例です。<code>Bin</code>という新しい型を定義し、<code>Bin</code>型に対して<code>String()</code>メソッドを実装しています。<code>String()</code>メソッドは、<code>Bin</code>型を2進数文字列として表現するためのものです。
<code>Print</code>関数は、<code>fmt.Stringer</code>インターフェースを実装した任意の型のスライスを受け取り、その要素を<code>fmt.Print</code>を使って画面に出力する関数です。<code>fmt.Stringer</code>インターフェースは、<code>String()</code>メソッドを持つ型に適用されます。
<code>main</code>関数では、<code>Print</code>関数を使って<code>Bin</code>型のスライスを表示しています。<code>Print</code>関数は<code>fmt.Stringer</code>インターフェースを満たすため、<code>Bin</code>型のスライスを受け取ることができ、<code>Bin</code>型の各要素は<code>String()</code>メソッドを介して2進数文字列として出力されます。
最終的に、<code>main</code>関数では<code>Print</code>関数を使って<code>[]Bin{0b1101, 0b1010_0101}</code>という配列を表示し、その結果として「0b1101」「0b10100101」が表示されます。
{{Nav}}
== 脚註 ==
<references />
o51ahd1hac5p82cixi4f37x7sl6uuxw
263410
263409
2024-11-13T02:45:21Z
Ef3
694
Go言語のジェネリクスは、Go 1.18で導入された機能です。従来のインターフェースベースの実装と、新しい型パラメータによる実装の両方がサポートされています。
263410
wikitext
text/x-wiki
{{Nav}}
=ジェネリクス=
Go言語のジェネリクスは、Go 1.18で導入された機能です。従来のインターフェースベースの実装と、新しい型パラメータによる実装の両方がサポートされています。
== 概要 ==
ジェネリクスを使用することで、型安全性を保ちながら汎用的なコードを記述できます。主な利点は:
* コンパイル時の型チェック
* 型アサーションの必要性の低減
* コードの再利用性の向上
== 実装方法の比較 ==
=== interfaceを使った従来の実装 ===
; メリット
:* Go 1.18以前から使用可能
:* シンプルな実装
:* 任意の型を扱える柔軟性
; デメリット
:* 型の安全性が低い
:* 実行時の型アサーションが必要
:* パフォーマンスのオーバーヘッド
;非ジェネリクス版スタック:
:<syntaxhighlight lang=go line copy>
package main
import (
"fmt"
)
// スタックの構造体
type Stack struct {
data []interface{}
}
// スタックに要素を追加
func (s *Stack) Push(item interface{}) {
s.data = append(s.data, item)
}
// スタックから要素を取り出す
func (s *Stack) Pop() interface{} {
item := s.data[len(s.data)-1]
s.data = s.data[:len(s.data)-1]
return item
}
// スタックの先頭の要素を取得(削除はしない)
func (s *Stack) Peek() interface{} {
return s.data[len(s.data)-1]
}
// スタックが空かどうかをチェックするメソッド
func (s *Stack) IsEmpty() bool {
return len(s.data) == 0
}
func main() {
// 空のスタックを作成
stack := Stack{}
// スタックに値を追加
stack.Push(10)
stack.Push("Hello")
stack.Push(3.14)
// スタックの内容を表示
for !stack.IsEmpty() {
item := stack.Pop()
fmt.Println("Popped:", item)
}
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
Popped: 3.14
Popped: Hello
Popped: 10
</syntaxhighlight>
=== 型パラメータを使った実装 ===
; メリット
:* コンパイル時の型チェック
:* 型安全性の向上
:* 実行時のオーバーヘッド削減
; デメリット
:* Go 1.18以降が必要
:* コードがやや複雑になる可能性
;ジェネリクス版スタック:
:<syntaxhighlight lang=go line copy>
package main
import (
"fmt"
)
// ジェネリクス化されたスタックの定義
type Stack[T any] []T
// スタックに要素を追加するメソッド
func (s *Stack[T]) Push(item T) {
*s = append(*s, item)
}
// スタックから要素を取り出すメソッド
func (s *Stack[T]) Pop() T {
item := (*s)[len(*s)-1]
*s = (*s)[:len(*s)-1]
return item
}
// スタックが空かどうかをチェックするメソッド
func (s *Stack[T]) IsEmpty() bool {
return len(*s) == 0
}
func main() {
// int型のスタックを作成
var intStack Stack[int]
// スタックに値を追加
intStack.Push(1)
intStack.Push(2)
intStack.Push(3)
// スタックから値を取り出して表示
for !intStack.IsEmpty() {
item := intStack.Pop()
fmt.Println(item)
}
// 文字列型のスタックを作成
var stringStack Stack[string]
// スタックに値を追加
stringStack.Push("apple")
stringStack.Push("banana")
stringStack.Push("cherry")
// スタックから値を取り出して表示
for !stringStack.IsEmpty() {
item := stringStack.Pop()
fmt.Println(item)
}
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
3
2
1
cherry
banana
apple
</syntaxhighlight>
== 型制約 ==
=== 基本的な型制約 ===
Go 1.18では、型パラメータに対して以下の制約を指定できます:
* <code>any</code>: すべての型と一致する制約(<code>interface{}</code>のエイリアス)
* <code>comparable</code>: <code>==</code>や<code>!=</code>による比較が可能な型
* カスタムインターフェース: 特定のメソッドを要求する制約
* 組み込み制約の例:
** <code>constraints.Ordered</code>: 順序付け可能な型(数値型や文字列型)
** <code>constraints.Integer</code>: 整数型
** <code>constraints.Float</code>: 浮動小数点型
=== インターフェースによる型制約の例 ===
;型制約の実装:
:<syntaxhighlight lang=go line copy>
package main
import "fmt"
// Stringerインターフェースを満たす型制約の例
type Bin int
func (b Bin) String() string {
return fmt.Sprintf("%#b", int(b))
}
// fmt.Stringerインターフェースを型制約として使用
func Print[T fmt.Stringer](s []T) {
for _, v := range s {
fmt.Print(v, "\n")
}
}
// カスタム型制約の定義例
type Number interface {
~int | ~int32 | ~int64 | ~float32 | ~float64
}
// Number制約を使用した総和計算関数
func Sum[T Number](values []T) T {
var sum T
for _, v := range values {
sum += v
}
return sum
}
func main() {
Print([]Bin{0b1101, 0b1010_0101})
numbers := []int{1, 2, 3, 4, 5}
fmt.Printf("Sum: %v\n", Sum(numbers))
}
</syntaxhighlight>
;実行結果:
:<syntaxhighlight lang=text>
0b1101
0b10100101
Sum: 15
</syntaxhighlight>
== 推奨プラクティス ==
* 可能な限り具体的な型制約を使用する
* インターフェースを活用して意味のある制約を定義する
* 型パラメータの命名は意図が分かりやすいものにする
* 必要以上に複雑な型制約は避ける
* パフォーマンスを考慮する場合は、型制約を適切に選択する
== 関連項目 ==
* インターフェース
* 型アサーション
* コンパイル時型チェック
* constraints パッケージ
== 脚註 ==
<references />
{{Nav}}
a3abyaxpel351tkz1fxyp2wyz0xv4gp
ガリア戦記 第6巻/注解
0
42852
263422
263301
2024-11-13T11:53:45Z
Linguae
449
/* 各節注解 */
263422
wikitext
text/x-wiki
<div style="font-family:Arial Black;font-style:normal;font-size:15pt;color:#990033;text-align:center;background-color:#fff0ff;">C · IVLII · CAESARIS · COMMENTARIORVM · BELLI · GALLICI</div>
<div style="font-family:Arial Black;font-style:normal;font-size:30pt;color:#990033;text-align:center;background-color:#fff0ff;">LIBER · SEXTVS</div>
<span style="font-size:13pt;">『<span style="background-color:#ffc;">[[ガリア戦記 第6巻]]</span>』の単語や構文を詳しく読み解く <span style="background-color:#fc8;font-size:15pt;">'''[[ガリア戦記/注解編|注解編]]'''</span> の目次。</span>
{| id="toc" style="border:0px #ddf; align:left;clear:all;" align="center" cellpadding="5"
|-
! style="background:#ccf; text-align:center;" colspan="10"| ガリア戦記 第6巻 注解
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/1節|1節]]
|[[/2節|2節]]
|[[/3節|3節]]
|[[/4節|4節]]
|[[/5節|5節]]
|[[/6節|6節]]
|[[/7節|7節]]
|[[/8節|8節]]
|[[/9節|9節]]
|[[/10節|10節]]
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/11節|11節]]
|[[/12節|12節]]
|[[/13節|13節]]
|[[/14節|14節]]
|[[/15節|15節]]
|[[/16節|16節]]
|[[/17節|17節]]
|[[/18節|18節]]
|[[/19節|19節]]
|[[/20節|20節]]<!--
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/21節|21節]]
|[[/22節|22節]]
|[[/23節|23節]]
|[[/24節|24節]]
|[[/25節|25節]]
|[[/26節|26節]]
|[[/27節|27節]]
|[[/28節|28節]]
|[[/29節|29節]]
|[[/30節|30節]]
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/31節|31節]]
|[[/32節|32節]]
|[[/33節|33節]]
|[[/34節|34節]]
|[[/35節|35節]]
|[[/36節|36節]]
|[[/37節|37節]]
|[[/38節|38節]]
|[[/39節|39節]]
|[[/40節|40節]]
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/41節|41節]]
|[[/42節|42節]]
|[[/43節|43節]]
|[[/44節|44節]]
|[[/45節|45節]]
|[[/46節|46節]]
|[[/47節|47節]]
|[[/48節|48節]]
|[[/49節|49節]]
|[[/50節|50節]]
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/51節|51節]]
|[[/52節|52節]]
|[[/53節|53節]]
|[[/54節|54節]]
|[[/55節|55節]]
|[[/56節|56節]]
|[[/57節|57節]]
|[[/58節|58節]]
| colspan="6" |
|- style="background:#f8f8ff; text-align:right; font-size: 0.85em;"
|[[/1節|1節]]
|[[/2節|2節]]
|[[/3節|3節]]
|[[/4節|4節]]
|[[/5節|5節]]
|[[/6節|6節]]
|[[/7節|7節]]
|[[/8節|8節]]
|[[/9節|9節]]
|[[/0節|0節]]
-->
|-
| style="background:#f5fefe; text-align:left; font-size: 0.8em;" colspan="10"|
[[ガリア戦記 第1巻/注解|'''注解''' 第1巻]] |
[[ガリア戦記 第2巻/注解|第2巻]] |
[[ガリア戦記 第3巻/注解|第3巻]] |
[[ガリア戦記 第4巻/注解|第4巻]] |
[[ガリア戦記 第5巻/注解|第5巻]] |
[[ガリア戦記 第6巻/注解|第6巻]] <!--|
[[ガリア戦記 第7巻/注解|第7巻]] |
[[ガリア戦記 第8巻/注解|第8巻]]-->
|}
<br style="clear:both;" />
__notoc__
== 各節注解 ==
[[画像:Gaule_-53.png|thumb|right|150px|ガリア戦記 第6巻の情勢図(BC53年)。<br>黄色の領域がローマ領。桃色が同盟部族領。]]
===ガッリア北部の平定===
*<span style="background-color:#fff;">[[/1節]] {{進捗|25%|2024-09-23}}</span> (129語)
*<span style="background-color:#fff;">[[/2節]] {{進捗|25%|2024-09-29}}</span> (89語) 短い節
*<span style="background-color:#fff;">[[/3節]] {{進捗|25%|2024-10-06}}</span> (112語)
*<span style="background-color:#fff;">[[/4節]] {{進捗|25%|2024-10-13}}</span> (86語) 短い節
*<span style="background-color:#fff;">[[/5節]] {{進捗|25%|2024-10-14}}</span> (150語)
*<span style="background-color:#fff;">[[/6節]] {{進捗|25%|2024-10-20}}</span> (69語) 短い節
*<span style="background-color:#fff;">[[/7節]] {{進捗|25%|2024-10-30}}</span> (196語)
*<span style="background-color:#fff;">[[/8節]] {{進捗|25%|2024-11-10}}</span> (210語)
*<span style="background-color:#fff;">[[/9節]] {{進捗|25%|2024-11-13}}</span> (141語)
===第二次ゲルマーニア遠征===
*<span style="background-color:#fff;">[[/10節]] {{進捗|00%|2024-11-06}}</span>
== 関連項目 ==
*<span style="background-color:#ffd;">[[ガリア戦記]]</span><!--【2006年4月23日起稿】-->
**<span style="background-color:#ffd;">[[ガリア戦記/注解編]]</span><!--(2020-03-27)-->
***<span style="background-color:#ffd;">[[ガリア戦記/注解編/写本と校訂版]] {{進捗|00%|2020-04-17}}</span><!--(2020-04-17)-->
**<span style="background-color:#ffd;">[[ガリア戦記/用例集]] {{進捗|00%|2020-03-29}}</span><!--(2020-03-29)-->
**[[ガリア戦記/内容目次]]:巻・章・節の内容を記した目次 {{進捗|75%|2011-04-02}}
**[[ガリア戦記/参照画像一覧]]:本文で参照した画像一覧 {{進捗|75%|2011-04-16}}
*<span style="background-color:#ffd;font-size:15px;">[[古典ラテン語]] {{進捗|00%|2018-04-18}} </span>
<br><div style="font-size:20pt;"> Ā Ē Ī Ō Ū ā ē ī ō ū Ă Ĕ Ĭ Ŏ Ŭ ă ĕ ĭ ŏ ŭ </div>
<div style="font-size:13pt;">
<math>\overline{\mbox{VIIII}} </math>
</div><!-- [[w:Help:数式の表示]] -->
<span style="font-family:Times New Roman;font-size:15pt;background-color:#fff;"></span>
<span style="font-family:Times New Roman;font-size:15pt;"></span>
<span style="font-family:Times New Roman;"></span>
<!--
*<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">† : </span>校訂者が、テクストが壊れていると判断した部分をこの記号で囲んでいる。
-->
<!--
<ruby><rb>●漢字●</rb><rp>(</rp><rt>●ルビ●</rt><rp>)</rp></ruby>
-->
<!--
*<span style="background-color:#ffd;">[[/注解/1節]] {{進捗|00%|2024-11-06}}</span>
-->
<!--
<span style="color:#009900;"></span>
<small></small>
**:<span style="color:#009900;">(訳注:
**:<span style="color:#009900;font-family:Times New Roman;">(訳注:
-->
<!--❶--><!--❷--><!--❸--><!--❹--><!--❺--><!--❻--><!--❼--><!--❽--><!--❾--><!----><!----><!----><!----><!---->
== 関連記事 ==
{{Wikisource|la:Commentarii de bello Gallico/Liber VI|ガリア戦記 第6巻(ラテン語)}}
*ウィキソース
**<span style="font-family:Times New Roman;">[[s:la:Commentarii de bello Gallico/Liber VI]] (第6巻 ラテン語)</span>
**<span style="font-family:Times New Roman;">[[s:en:Commentaries on the Gallic War/Book 6]] (第6巻 英訳)</span>
**<span style="font-family:Times New Roman;">[[s:fr:La Guerre des Gaules/Livre VI]] (第6巻 仏訳)</span>
----
{{Commons|Category:Battles of Caesar's Gallic Wars|Battles of Caesar's Gallic Warsのカテゴリ}}
*<span style="font-family:Times New Roman;font-size:13pt;">[[wikt:fr:Catégorie:Mots en latin issus d’un mot en gaulois]]</span>
----
;地名
*[[wikt:en:Gallia#Latin|Gallia]]
**Gallia [[wikt:en:cisalpinus#Latin|cisalpīna]]
**Gallia [[wikt:en:transalpinus#Latin|trānsalpīna]]
**Gallia [[wikt:en:comatus#Latin|comāta]]
;部族
*[[wikt:en:Germani#Latin|Germānī]]
;第6巻の登場人物
*[[wikt:en:Caesar#Latin|Caesar]]
:
*[[wikt:en:Ambiorix#Latin|Ambiorīx]]
:
*[[wikt:en:Commius|Commius]]
**[[w:コンミウス]]
**[[w:la:Commius]]
**[[w:en:Commius]]
**[[w:fr:Commios]]
*[[wikt:en:Cicero#Latin|Cicerō]]
**[[w:クィントゥス・トゥッリウス・キケロ|クイーントゥス・トゥッリウス・キケロー]]
**[[w:la:Quintus Tullius Cicero]]
**[[w:en:Quintus Tullius Cicero]]
**[[w:fr:Quintus Tullius Cicero]]
*[[wikt:en:Crassus#Latin|Crassus]]
*[[wikt:en:Labienus#Latin|Labiēnus]]
**[[w:ティトゥス・ラビエヌス|ティトゥス・ラビエーヌス]]
<!--
*?
**Crassus
***[[w:プブリウス・リキニウス・クラッスス]]
***[[w:la:Publius Licinius Crassus]]
***[[w:en:Publius Licinius Crassus (son of triumvir)]]
***[[w:fr:Publius Crassus]]
**Labienus (副官)
***[[w:la:Titus Labienus]]
***[[w:en:Titus Labienus]]
***[[w:fr:Titus Labienus]]
**Brutus
***[[w:デキムス・ユニウス・ブルトゥス・アルビヌス]]
***[[w:la:Decimus Iunius Brutus Albinus]]
***[[w:en:Decimus Junius Brutus Albinus]]
***[[w:fr:Decimus Junius Brutus Albinus]]
-->
<br>
===第6巻の関連記事===
<!--【第6巻の関連記事】-->
{{Commons|Category:Roman Britain|Roman Britainのカテゴリ}}
<div style="font-family:Times New Roman;font-size:13pt;">
<!--
*[[c:Category:Armorica]]
**[[c:Category:Maps of the Antiquity of Bretagne]]
-->
<hr>
*[[c:Category:Ancient Roman ships]]
<br>
</span>
<span style="font-family:Times New Roman;font-size:13pt;"></span>
== 外部リンク ==
*[[ガリア戦記/注解編#外部リンク]] を参照。
*[[ガリア戦記/注解編/写本と校訂版#オンライン注釈書等]] 等を参照。
===オンライン注釈書===
<div style="background-color:#eeeeee;">
====Caesar's Gallic war : notes by F. W. Kelsey (1897)====
:C. Iuli Caesaris De bello gallico libri VII :
::Caesar's Gallic war : with an introduction, notes, and vocabulary
::: by [[w:en:Francis Kelsey|Francis Willey Kelsey (1858-1927)]], Fifteenth Edition (1897)
:::: (HathiTrust Digital Library [[w:ハーティトラスト|ハーティトラスト・デジタルライブラリ]]で電子化)
:: [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=19 Contents] (#19)
;:─TEXT─
:: '''Book 6''' : [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=219 Commentarius Sextus] (#219)
;:─NOTES─
:: '''Book 6'''
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=441 I.] (#441), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=442 II.-III.] (#442), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=443 IV.-VII.] (#443), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=444 VIII.-IX.] (#444),
# [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=445 X.-XI.] (#445), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=446 XII.-XIII.] (#446), [https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=447 XIV.-XV.] (#447),
</div>
====English translation by W. A. McDevitte & W. S. Bohn (1869)====
# [http://www.forumromanum.org/literature/caesar/gallic.html (www.forumromanum.org)]
# (www.perseus.tufts.edu)
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.1 C. Julius Caesar, Gallic War, Book 6, chapter 1]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.2 C. Julius Caesar, Gallic War, Book 6, chapter 2]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.3 C. Julius Caesar, Gallic War, Book 6, chapter 3]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.4 C. Julius Caesar, Gallic War, Book 6, chapter 4]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.5 C. Julius Caesar, Gallic War, Book 6, chapter 5]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.6 C. Julius Caesar, Gallic War, Book 6, chapter 6]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.7 C. Julius Caesar, Gallic War, Book 6, chapter 7]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.8 C. Julius Caesar, Gallic War, Book 6, chapter 8]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.9 C. Julius Caesar, Gallic War, Book 6, chapter 9]
## [https://www.perseus.tufts.edu/hopper/text?doc=Caes.+Gal.+6.10 C. Julius Caesar, Gallic War, Book 6, chapter 10]
<!--
====Eastman, Frederick Carlos., D'Ooge, Benjamin L. 1860-1940.(1917)====
<span style="font-family:Times New Roman;font-style:normal;font-size:13pt;">
*[https://catalog.hathitrust.org/Record/001058370 Catalog Record: Caesar in Gaul and selections from the third... | HathiTrust Digital Library] (catalog.hathitrust.org)
:[https://babel.hathitrust.org/cgi/pt?id=hvd.hn5cnb&view=1up&seq=7&skin=2021 #7 - Caesar in Gaul and selections from the third book of the Civil ... - Full View | HathiTrust Digital Library] (babel.hathitrust.org)
:BOOK IV. [https://babel.hathitrust.org/cgi/pt?id=hvd.hn5cnb&view=1up&seq=393&skin=2021 #393 ]
:IV.34,-38. [https://babel.hathitrust.org/cgi/pt?id=hvd.hn5cnb&view=1up&seq=403&skin=2021 #403 ]
</span>
-->
====Harkness, Albert (1889)====
<span style="font-family:Times New Roman;font-style:normal;"><span style="font-size:15pt;">Caesar's Commentaries on the Gallic War, </span><span style="font-size:13pt;">with notes, dictionary, and a map of Gaul.</span><br> <span style="font-size:15pt;">
edited by <u>[[w:en:Albert Harkness|Albert Harkness (1822-1907)]]</u> <ref>[http://onlinebooks.library.upenn.edu/webbin/book/lookupname?key=Harkness%2C%20Albert%2C%201822%2D1907 Harkness, Albert, 1822-1907 | The Online Books Page]</ref>, New York, [[w:en:D. Appleton & Company|D. Appleton and Company]], 1889 (Rivised Edition)</span></span>
::Caesar's commentaries on the Gallic war; with notes, dictionary, ... (Full View | HathiTrust Digital Library)
; BOOK SIXTH
:VI. 1. [https://babel.hathitrust.org/cgi/pt?id=hvd.hn3hve&view=1up&seq=365 #365]
====Incerti auctoris(編者不詳)====
; [https://books.google.co.jp/books?id=uLA8AAAAIAAJ&lpg=PA98&dq=Caesar+to+Cicero.+Be+of+good+courage.+Expect+aid&pg=PP1&redir_esc=y#v=onepage&q&f=false Caesar Gallic War V with vocabulary](第5巻)-Google ブックス(プレビュー)
;[https://www.latein.me/ Latein-Wörterbuch - Latein.me]
# [https://www.latein.me/text/3/Caesar/37/De+Bello+Gallico+%28V%29/p/0 De Bello Gallico (V) - Caesar - Latein.me]
<span style="font-family:Times New Roman;font-style:normal;font-size:13pt;"></span>
;nodictionaries.com
<!-- :[https://nodictionaries.com/caesar/de-bello-gallico-1/1 '''Caesar De Bello Gallico 1''' 1 in Latin, with adjustable running vocabulary]
:[https://nodictionaries.com/caesar/de-bello-gallico-2/1 '''Caesar De Bello Gallico 2''' 1 in Latin, with adjustable running vocabulary]
:[https://nodictionaries.com/caesar/de-bello-gallico-3/1 '''Caesar De Bello Gallico 3''' 1 in Latin, with adjustable running vocabulary]
:[https://nodictionaries.com/caesar/de-bello-gallico-4/1 '''Caesar De Bello Gallico 4''' 1 in Latin, with adjustable running vocabulary] -->
:[https://nodictionaries.com/caesar/de-bello-gallico-5/1 Caesar De Bello Gallico 5 1 in Latin, with adjustable running vocabulary]
==脚注==
<references />
[[Category:ガリア戦記 第6巻|*#]]
oh7eqpvwhwcch2bo1zmu1qzb8r3qx2w
ガリア戦記 第6巻/注解/9節
0
43189
263421
263188
2024-11-13T11:52:07Z
Linguae
449
/* 整形テキスト */
263421
wikitext
text/x-wiki
<div style="font-family:Arial Black;font-style:normal;font-size:15pt;color:#990033;text-align:center;">C · IVLII · CAESARIS · COMMENTARIORVM · BELLI · GALLICI</div>
<div style="font-family:Arial Black;font-style:normal;font-size:30pt;color:#990033;text-align:center;">LIBER · SEXTVS</div>
<br>
{| id="toc" style="align:center;clear:all;" align="center" cellpadding="5"
|-
! style="background:#bbf; text-align:center;" | [[ガリア戦記/注解編|ガリア戦記 注解編]]
| style="background:#ccf; text-align:center;" | [[ガリア戦記 第6巻/注解|第6巻]]
| style="background:#eef; text-align:center;"|
[[ガリア戦記 第6巻/注解/8節|8節]] |
[[ガリア戦記 第6巻/注解/9節|9節]] |
[[ガリア戦記 第6巻/注解/10節|10節]]
|}
__notoc__
== 原文テキスト ==
<div style="font-family:Times New Roman;font-style:normal;font-size:15pt;color:#333;text-align:left;"><ref>原文テキストについては[[ガリア戦記/注解編#原文テキスト]]を参照。</ref> 9. <!--❶--><sup>1</sup>Caesar, postquam ex Menapiis in Treveros venit, duabus de causis Rhenum transire constituit:<!--;--> <!--◆--> <!--❷--><sup>2</sup>quarum una erat, quod auxilia contra se Treveris miserant;<!--,--> <!--◆--> altera, ne ad eos Ambiorix receptum haberet. <!--◆--> <!--❸--><sup>3</sup>His constitutis rebus, <!--(α) -->paulum<!--(β) paulo--> supra eum locum<!--,--> quo ante exercitum traduxerat<!--,--> facere pontem instituit. <!--◆--> <!--❹--><sup>4</sup>Nota atque instituta ratione magno militum studio paucis diebus opus efficitur. <!--◆--> <!--❺--><sup>5</sup>Firmo in Treveris ad pontem praesidio relicto<!--,--> ne quis ab his subito motus <!--(χB'ρ) -->oreretur<!--(φπ) oriretur-->, reliquas copias equitatumque traducit. <!--◆--> <!--❻--><sup>6</sup>Ubii, qui ante obsides dederant atque in deditionem venerant, <!--(α) -->purgandi sui<!--(β) purgandi--><!--(Seel) sui purgandi--> causa ad eum legatos mittunt<!--,--> qui doceant neque <!--(α) -->auxilia ex sua civitate<!--(β) ex sua civitate auxilia--> in Treveros missa neque ab se fidem laesam: <!--◆--> <!--❼--><sup>7</sup>petunt atque orant ut sibi parcat, ne communi odio Germanorum innocentes pro nocentibus poenas pendant; si amplius obsidum <!--(α) -->vellet, dare<!--(β) velit dari--> pollicentur. <!--◆--> <!--❽--><sup>8</sup>Cognita Caesar causa <!--(ω) -->repperit<!--(edd.) --> ab Suebis auxilia missa esse; <!--◆--> Ubiorum satisfactionem <!--(αβ) -->accepit<!--(Dav.) accipit-->, aditus viasque in Suebos perquirit. </div>
<span style="background-color:#ffc;"></span>
----
;テキスト引用についての注記
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:bold;font-size:15pt;"></span>
== 整形テキスト ==
<div style="font-family:Times New Roman;font-style:normal;font-size:15pt;color:#333;text-align:left;"><ref>整形テキストについては[[ガリア戦記/注解編#凡例]]を参照。</ref> IX. <!--❶--><sup>①</sup>Caesar, postquam ex Menapiīs in Trēverōs vēnit, duābus dē causīs Rhēnum trānsīre cōnstituit:<!--;--> <!--◆--> <!--❷--><sup>②</sup>quārum ūna erat, quod <!--(Hotomanus) <Germānī>--> auxilia contrā sē Trēverīs mīserant;<!--,--> <!--◆--> altera, nē ad eōs Ambiorīx receptum habēret. <!--◆--> <!--❸--><sup>③</sup>Hīs cōnstitūtīs rēbus, <!--(α) --><u>paulum</u><!--(β) paulō--> suprā eum locum<!--,--> quō ante exercitum trādūxerat<!--,--> facere pontem īnstituit. <!--◆--> <!--❹--><sup>④</sup>Nōtā atque īnstitūtā ratiōne<!--,--> magnō mīlitum studiō paucīs diēbus opus efficitur. <!--◆--> <!--❺--><sup>⑤</sup>Fīrmō in Trēverīs ad pontem praesidiō relīctō<!--,--> nē quis ab hīs subitō mōtus <!--(χB'ρ) --><u>orerētur</u><!--(φπ) orīrētur-->, reliquās cōpiās equitātumque trādūcit. <!--◆--> <!--❻--><sup>⑥</sup>Ubiī, quī ante obsidēs dederant atque in dēditiōnem vēnerant, <!--(α) --><u>pūrgandī suī</u><!--(β) purgandī--><!--(Seel) suī pūrgandī--> causā ad eum lēgātōs mittunt<!--,--> quī doceant<!--,--> neque <!--(α) --><u>auxilia ex suā cīvitāte</u><!--(β) ex suā cīvitāte auxilia--> in Trēverōs missa neque ab sē fidem laesam:<!--;--> <!--◆--> <!--❼--><sup>⑦</sup>petunt atque ōrant<!--,--> ut sibi parcat, nē commūnī odiō Germānōrum innocentēs prō nocentibus poenās pendant; <!--◆--> sī amplius obsidum <!--(α) --><u>vellet, dare</u><!--(β) velit darī--> pollicentur. <!--◆--> <!--❽--><sup>⑧</sup>Cognitā Caesar causā <!--(ω) --><u>repperit</u><!--(edd.) reperit--> ab Suēbīs auxilia missa esse; <!--◆--> Ubiōrum satisfactiōnem <!--(ω) --><u>accepit</u><!--(Davisius) accipit-->, aditūs viāsque in Suēbōs perquīrit. </div>
<span style="color:#800;"></span>
----
;注記
<!--
*原文の <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[wikt:en:accommodatae|accommodātae]], [[wikt:en:allatis|allātīs]], [[wikt:en:Aduatuci|Aduatucī]], [[wikt:en:Aduatucis|Aduatucīs]], [[wikt:en:Aduatucos|Aduatucōs]], [[wikt:en:Aeduae|Aeduae]], [[wikt:en:Aedui#Latin|Aeduī]], [[wikt:en:Aeduis|Aeduīs]], [[wikt:en:Aeduorum|Aeduōrum]], [[wikt:en:Aeduos|Aeduōs]], [[wikt:en:Aeduus#Latin|Aeduus]], [[wikt:en:aequinocti|aequinoctī]], [[wikt:en:affectus#Participle|affectus]], [[wikt:en:aggregabat|aggregābat]], [[wikt:en:allato|allātō]], [[wikt:en:Alpis#Latin|Alpīs]], [[wikt:en:appelluntur|appelluntur]], [[wikt:en:apportari|apportārī]], [[wikt:en:appropinquabat|appropinquābat]], [[wikt:en:appropinquare#Latin|appropinquāre]], [[wikt:en:appropinquarent|appropinquārent]], [[wikt:en:appropinquaverunt|appropinquāvērunt]] ([[wikt:en:appropinquarunt|appropinquārunt]]), [[wikt:en:appropinquavit|appropinquāvit]], [[wikt:en:appulso#Latin|appulsō]], [[wikt:en:arripere|arripere]], [[wikt:en:ascendissent#Latin|ascendissent]], [[wikt:en:ascensu#Noun|ascēnsū]], [[wikt:en:assuefacti|assuēfactī]], [[wikt:en:auxili#Latin|auxilī]], [[wikt:en:cedentis|cēdentīs]], [[wikt:en:cohortis|cohortīs]], [[wikt:en:coicere|coicere]], [[wikt:en:coicerent|coicerent]], [[wikt:en:coici|coicī]], [[wikt:en:coiciant|coiciant]], [[wikt:en:coiciebant|coiciēbant]], [[wikt:en:coiciunt|coiciunt]], [[wikt:en:coiecerant|coiēcerant]], [[wikt:en:coiecerunt|coiēcērunt]], [[wikt:en:coiecisse|coiēcisse]], [[wikt:en:coiecta|coiecta]], [[wikt:en:coiecti|coiectī]], [[wikt:en:coiectis|coiectīs]], [[wikt:en:collatis|collātīs]], [[wikt:en:collaudat|collaudat]], [[wikt:en:collaudatis#Participle|collaudātīs]], [[wikt:en:collis#Latin|collīs]], [[wikt:en:collocabant|collocābant]], [[wikt:en:collocabat|collocābat]], [[wikt:en:collocandis|collocandīs]], [[wikt:en:collocant#Latin|collocant]], [[wikt:en:collocarat|collocārat]], [[wikt:en:collocare#Latin|collocāre]], [[wikt:en:collocaret|collocāret]], [[wikt:en:collocari|collocārī]], [[wikt:en:collocatas|collocātās]], [[wikt:en:collocati#Latin|collocātī]], [[wikt:en:collocatis#Participle|collocātīs]], [[wikt:en:collocavit|collocāvit]], [[wikt:en:collocuti|collocūtī]], [[wikt:en:colloquantur|colloquantur]], [[wikt:en:colloquendi|colloquendī]], [[wikt:en:colloqui#Latin|colloquī]], [[wikt:en:colloquium#Latin|colloquium]], [[wikt:en:compluribus|complūribus]], [[wikt:en:compluris|complūrīs]], [[wikt:en:conantis|cōnantīs]], [[wikt:en:consili|cōnsilī]], [[wikt:en:egredientis#Etymology_2|ēgredientīs]], [[wikt:en:ei#Latin|eī]], [[wikt:en:eis#Latin|eīs]], [[wikt:en:ferventis#Latin|ferventīs]], [[wikt:en:finis#Latin|fīnīs]], [[wikt:en:glandis#Latin|glandīs]], [[wikt:en:hostis#Latin|hostīs]], [[wikt:en:immittit|immittit]], [[wikt:en:immittunt|immittunt]], [[wikt:en:imperi#Latin|imperī]], [[wikt:en:incolumis#Latin|incolumīs]], [[wikt:en:irridere#Latin|irrīdēre]], [[wikt:en:irrumpit|irrumpit]], [[wikt:en:irruperunt|irrūpērunt]], [[wikt:en:laborantis#Etymology_2|labōrantīs]], [[wikt:en:montis|montīs]], [[wikt:en:navis#Latin|nāvīs]], [[wikt:en:negoti|negōtī]], nōn nūllae, nōn nūllōs, [[wikt:en:offici#Noun_2|officī]], [[wikt:en:omnis#Latin|omnīs]], [[wikt:en:partis#Latin|partīs]], [[wikt:en:periclum#Latin|perīclum]], plūrīs, [[wikt:en:praesidi|praesidī]], [[wikt:en:proeli|proelī]], proficīscentīs, [[wikt:en:resistentis|resistentīs]], [[wikt:en:singularis#Latin|singulārīs]], [[wikt:en:spati#Latin|spatī]], [[wikt:en:subeuntis|subeuntīs]], [[wikt:en:suffossis|suffossīs]], [[wikt:en:sumministrata|sumministrāta]], [[wikt:en:summissis|summissīs]], [[wikt:en:summittebat|summittēbat]], [[wikt:en:summittit|summittit]], [[wikt:en:summoveri|summovērī]], [[wikt:en:Trinobantes#Latin|Trinobantēs]], trīs, [[wikt:en:turris#Latin|turrīs]], [[wikt:en:utilis#Latin|ūtilīs]], [[wikt:en:vectigalis#Latin|vectīgālīs]] </span> などは、<br>それぞれ <span style="font-family:Times New Roman;font-style:normal;font-size:15pt;">[[wikt:en:adcommodatae|adcommodātae]], [[wikt:en:adlatis|adlātīs]], [[wikt:de:Atuatuci|Atuatucī]], Atuatucīs, Atuatucōs, Haeduae, Haeduī, Haeduīs, Haeduōrum, Haeduōs, Haeduus, [[wikt:en:aequinoctii|aequinoctiī]], [[wikt:en:adfectus#Adjective|adfectus]], [[wikt:en:adgregabat|adgregābat]], [[wikt:en:adlato|adlātō]], [[wikt:en:Alpes#Latin|Alpēs]], [[wikt:en:adpelluntur|adpelluntur]], [[wikt:en:adportari|adportārī]], [[wikt:en:adpropinquabat|adpropinquābat]], [[wikt:en:adpropinquare|adpropinquāre]], [[wikt:en:adpropinquarent|adpropinquārent]], [[wikt:en:adpropinquaverunt|adpropinquāvērunt]] ([[wikt:en:adpropinquarunt|adpropinquārunt]]), [[wikt:en:adpropinquavit|adpropinquāvit]], [[wikt:en:adpulso|adpulsō]], [[wikt:en:adripere|adripere]], [[wikt:en:adscendissent|adscendissent]], [[wikt:en:adscensu#Noun|adscēnsū]], [[wikt:en:adsuefacti|adsuēfactī]], [[wikt:en:auxilii|auxiliī]], [[wikt:en:cedentes#Latin|cēdentēs]], [[wikt:en:cohortes#Latin|cohortēs]], [[wikt:en:conicere|conicere]], [[wikt:en:conicerent|conicerent]], [[wikt:en:conici#Latin|conicī]], [[wikt:en:coniciant|coniciant]], [[wikt:en:coniciebant|coniciēbant]], [[wikt:en:coniciunt|coniciunt]], [[wikt:en:coniecerant|coniēcerant]], [[wikt:en:coniecerunt|coniēcērunt]], [[wikt:en:coniecisse|coniēcisse]], [[wikt:en:coniecta|coniecta]], [[wikt:en:coniecti|coniectī]], [[wikt:en:coniectis|coniectīs]], [[wikt:en:conlatis|conlātīs]], [[wikt:en:conlaudat|conlaudat]], [[wikt:en:conlaudatis#Participle|conlaudātīs]], [[wikt:en:colles#Latin|collēs]], [[wikt:en:conlocabant|conlocābant]], [[wikt:en:conlocabat|conlocābat]], [[wikt:en:conlocandis|conlocandīs]], [[wikt:en:conlocant|conlocant]], [[wikt:en:conlocarat|conlocārat]], [[wikt:en:conlocare|conlocāre]], [[wikt:en:conlocaret|conlocāret]], [[wikt:en:conlocari|conlocārī]], [[wikt:en:conlocatas|conlocātās]], [[wikt:en:conlocati|conlocātī]], [[wikt:en:conlocatis#Participle|conlocātīs]], [[wikt:en:conlocavit|conlocāvit]], [[wikt:en:conlocuti|conlocūtī]], [[wikt:en:conloquantur|conloquantur]], [[wikt:en:conloquendi|conloquendī]], [[wikt:en:conloqui#Latin|conloquī]], [[wikt:en:conloquium#Latin|conloquium]], [[wikt:en:conpluribus|conplūribus]], [[wikt:en:complures#Latin|complūrēs]], [[wikt:en:conantes|cōnantēs]], [[wikt:en:consilii|cōnsiliī]], [[wikt:en:egredientes|ēgredientēs]], [[wikt:en:ii#Latin|iī]], [[wikt:en:iis#Latin|iīs]], [[wikt:en:ferventes#Latin|ferventēs]], [[wikt:en:fines#Latin|fīnēs]], [[wikt:en:glandes#Latin|glandēs]], [[wikt:en:hostes#Latin|hostēs]], [[wikt:en:inmittit|inmittit]], [[wikt:en:inmittunt|inmittunt]], [[wikt:en:imperii#Latin|imperiī]], [[wikt:en:incolumes|incolumēs]], [[wikt:en:inridere|inrīdēre]], [[wikt:en:inrumpit|inrumpit]], [[wikt:en:inruperunt|inrūpērunt]], [[wikt:en:laborantes#Latin|labōrantēs]], [[wikt:en:montes#Latin|montēs]], [[wikt:en:naves#Latin|nāvēs]], [[wikt:en:negotii|negōtiī]], [[wikt:en:nonnullae|nōnnūllae]], [[wikt:en:nonnullos|nōnnūllōs]], [[wikt:en:officii#Latin|officiī]], [[wikt:en:omnes#Latin|omnēs]], [[wikt:en:partes#Latin|partēs]], [[wikt:en:periculum#Latin|perīculum]], [[wikt:en:plures|plūrēs]], [[wikt:en:praesidii|praesidiī]], [[wikt:en:proelii|proeliī]], [[wikt:en:proficiscentes|proficīscentēs]], [[wikt:en:resistentes#Latin|resistentēs]], [[wikt:en:singulares#Latin|singulārēs]], [[wikt:en:spatii#Latin|spatiī]], [[wikt:en:subeuntes|subeuntēs]], [[wikt:en:subfossis|subfossīs]], [[wikt:en:subministrata|subministrāta]], [[wikt:en:submissis|submissīs]], [[wikt:en:submittebat|submittēbat]], [[wikt:en:submittit|submittit]], [[wikt:en:submoveri|submovērī]], [[wikt:en:Trinovantes#Latin|Trinovantēs]], [[wikt:en:tres#Latin|trēs]], [[wikt:en:turres#Latin|turrēs]], [[wikt:en:utiles#Latin|ūtilēs]], [[wikt:en:vectigales|vectīgālēs]] </span> などとした。
-->
<span style="font-family:Times New Roman;font-style:normal;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-style:oblique;font-size:15pt;"></span>
<span style="color:#b00;"></span>
<span style="color:#800;"></span>
<span style="font-size:10pt;"></span>
<span style="background-color:#ff0;"></span>
== 注解 ==
=== 1項 ===
<span style="font-family:Times New Roman;font-size:20pt;"></span>
;語釈
<span style="font-family:Times New Roman;font-size:15pt;background-color:#fff;"></span>
<span style="font-family:Times New Roman;font-size:15pt;"></span>
<span style="font-family:Times New Roman;font-size:15pt;"></span>
<span style="background-color:#ccffcc;"></span>
<!--
;対訳
《 》 内は、訳者が説明のために補った語。<span style="font-family:Times New Roman;font-size:30pt;">{</span> <span style="font-family:Times New Roman;font-size:30pt;">}</span> 内は関係文。
<span style="font-family:Times New Roman;font-size:15pt;"></span>
-->
== 訳文 ==
*<span style="background-color:#dff;">訳文は、[[ガリア戦記_第6巻#9節]]</span>
== 脚注 ==
{{Reflist}}
== 解説 ==
<!--
{| class="wikitable" style="text-align:center"
|- style="height:23em;"
|
|
|}
-->
== 関連項目 ==
*[[ガリア戦記]]
**[[ガリア戦記/注解編]]
***[[ガリア戦記 第6巻/注解]]
**[[ガリア戦記/用例集]]
== 関連記事 ==
== 外部リンク ==
*[https://babel.hathitrust.org/cgi/pt?id=hvd.hn1tp9&seq=223 #223 - C. Iuli Caesaris De bello gallico libri VII : Caesar's Gallic ... - Full View | HathiTrust Digital Library]
[[Category:ガリア戦記 第6巻|09節]]
7echyyyw6srbbwburqrtyjeprp3f3k2
高等学校日本史探究/古代国家の形成Ⅰ
0
43191
263381
263142
2024-11-12T12:23:23Z
Kwawe
68789
/* 6世紀の朝鮮半島と倭 */ 校閲と大幅加筆修正。高句麗が百済の首都を攻め、百済の国王が高句麗の兵士に殺されたことも記述しました。
263381
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>古代国家の形成Ⅰ
==6世紀の朝鮮半島と倭==
5世紀の朝鮮半島は、高句麗と百済の間で戦争になりました。475年、高句麗が漢城(百済の首都)を攻めました。その結果、百済の国王は降伏して、高句麗の兵士に殺されました。降伏後の百済は首都を熊津から扶余に引っ越し、加耶地域まで影響力を広げました。日本のヤマト政権も伽耶地域に関心がありました。加耶諸国と仲良くしたいので、兵士を朝鮮半島に送りました。しかし、伽耶諸国は「自分達の力だけで国を動かしていきたい」と考えるようになりました。512年、加耶地域の西側が百済の支配下に入るようになりました。
倭で政治を主導していた大伴金村もこれに伴って、6世紀初めに失脚しました。『日本書紀』にも、伽耶西部に百済の支配権が及んだことを問題視されたことが記載されています。このころ、'''仏教'''が正式に伝来しました。百済の聖明王が欽明天皇に仏像や経典を送ったとされます。ただし、それまでにも民間では、仏教の伝来があったとされます。
大伴氏が衰退した後、大王家の欽明天皇のもと物部氏と新興の蘇我氏が台頭しました。蘇我氏は、①大王家と婚姻関係を結ぶ②渡来人との連携を強化する③屯倉など財政権を強化するなどの方法で勢力を拡大していきました。さらに、仏教を積極的に受容しました。一方で、物部氏や中臣氏は、在来の信仰を重んじ、仏教を排除しようとしていました。そんな中、'''蘇我馬子'''は王位継承問題もからんで'''物部守屋'''と対立し、587年に守屋を滅ぼしました。さらに、馬子は自身が擁立した崇峻天皇を592年に暗殺しました。このようにして、蘇我氏が実権を握りました。
==推古朝の外交と内政==
崇峻天皇が暗殺されたのち、飛鳥で'''推古天皇'''が即位しました。初の女性の天皇です。ここで登用されたのが'''厩戸王'''(のちの'''聖徳太子''')でした。『日本書紀』にも、「摂政」という言葉があり、政治に参画したことがうかがえます。推古天皇も厩戸王も蘇我氏と血縁があり、蘇我馬子の影響力が強い政権でした。推古天皇は、厩戸王と蘇我馬子らに仏教を興隆させるよう命じました。これは、仏教が一部の人に信仰されるのにとどまっていたからです。蘇我馬子は、'''法興寺'''('''飛鳥寺''')を、厩戸王は、'''四天王寺'''や'''法隆寺'''('''斑鳩寺''')を、秦河勝も広隆寺を建立しました。
推古朝では、中国統一王朝である'''隋'''と外交を結ぶため、'''遣隋使'''を派遣しました。『隋書』によれば、600年に一度遣隋使を派遣していますが、『日本書紀』などにはその記述がありません。
遣隋使からの情報により、推古朝は、国家組織を再編成しようとしました。603年に'''冠位十二階'''を定め、個人の功績に応じて冠位を与えました。これにより、それまでの氏姓制度によって集団ごとに編成された身分秩序を再編しようとしました。翌604年にも'''憲法十七条'''を定めました。これは、役人を統制するための道徳規範としての意味を持ちます。憲法十七条は、仏教を重んじているのに加え、日本古来の精神性と儒教や道教など大陸からもたらされた教えを融合させているのが特徴です。
国家組織を再編成した推古朝は、607年にも'''小野妹子'''を遣隋使として、派遣しました。この時妹子は、国書を隋の皇帝であった煬帝に差し出しましたが、無礼だとされました。なぜならその国書は、倭が隋に従属しないという態度を示していたためです。倭の五王までは、中国の王朝に冊封をもとめていたので大きな変化でした。結局、煬帝は、高句麗に侵攻している情勢もあって、裴世清を倭に送りました。
国家体制が充実してきた推古朝は、歴史書編纂にも取り組みました。厩戸王と蘇我馬子が中心となり、620年に『天皇記』や『国記』などを編纂しました。これらは、6世紀に成立した「帝紀」や「旧辞」を基に、天皇と諸氏の関係性を示し、天皇の支配が正当であることを示そうとしていたと考えられます。
==7世紀の東アジアと倭国==
3度目の遣隋使では、留学生や留学僧を同行させました。中国の制度や思想、文化などを取り込もうとしたのです。このとき、留学生の'''高向玄理'''や留学僧の'''旻'''・'''南淵請安'''が重要です。その後、4度目の遣隋使として犬上御田鍬を送りましたが、これが最後の遣隋使となります。隋が滅び唐が建国したからです。唐は、律令法に基づいて中央集権的な国家体制を展開し、朝鮮半島を圧迫していました。前述の留学生や留学僧は、唐の建国に学び帰国した後、7世紀初めの政治に大きな影響を及ぼしました。
このころ倭国は、蘇我氏がさらに権力を拡大していました。馬子の子である蘇我蝦夷に続き、その子の'''蘇我入鹿'''がさらなる権力をふるいました。さらに入鹿は、厩戸王の子である山背大兄王を自害に追い込みました。これは、蘇我氏系の天皇のもと蘇我氏が権力をふるうことを目指したものだと考えられます。これに対して、'''中大兄皇子'''と'''中臣鎌足'''(のちの藤原鎌足)を中心に、蘇我倉山田石川麻呂の協力もあって蘇我入鹿を殺害しました。さらに翌日、蘇我蝦夷も自殺に追い込みました。これを'''乙巳の変'''と言います。
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 『[https://ten.tokyo-shoseki.co.jp/text/hs/shakai/16596/ 日本史探究]』東京書籍株式会社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
4ukukggyzviql0yllx5ytrzyqfrdy0d
263382
263381
2024-11-12T12:39:01Z
Kwawe
68789
/* 6世紀の朝鮮半島と倭 */ 新羅は百済と争い、伽耶諸国を自分の領土にします。
263382
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>古代国家の形成Ⅰ
==6世紀の朝鮮半島と倭==
5世紀の朝鮮半島は、高句麗と百済の間で戦争になりました。475年、高句麗が漢城(百済の首都)を攻めました。その結果、百済の国王は降伏して、高句麗の兵士に殺されました。降伏後の百済は首都を熊津から扶余に引っ越し、加耶地域まで影響力を広げました。日本のヤマト政権も伽耶地域に関心がありました。加耶諸国と仲良くしたいので、兵士を朝鮮半島に送りました。しかし、伽耶諸国は「自分達の力だけで国を動かしていきたい」と考えるようになりました。512年、加耶地域の西側が百済の支配下に入るようになりました。6世紀を迎えると、新羅もかなり力をつけ始めます。新羅は百済と争いながら、伽耶諸国を新羅の領土に入れました。その結果、ヤマト政権は朝鮮半島の影響力を失いました。
倭で政治を主導していた大伴金村もこれに伴って、6世紀初めに失脚しました。『日本書紀』にも、伽耶西部に百済の支配権が及んだことを問題視されたことが記載されています。このころ、'''仏教'''が正式に伝来しました。百済の聖明王が欽明天皇に仏像や経典を送ったとされます。ただし、それまでにも民間では、仏教の伝来があったとされます。
大伴氏が衰退した後、大王家の欽明天皇のもと物部氏と新興の蘇我氏が台頭しました。蘇我氏は、①大王家と婚姻関係を結ぶ②渡来人との連携を強化する③屯倉など財政権を強化するなどの方法で勢力を拡大していきました。さらに、仏教を積極的に受容しました。一方で、物部氏や中臣氏は、在来の信仰を重んじ、仏教を排除しようとしていました。そんな中、'''蘇我馬子'''は王位継承問題もからんで'''物部守屋'''と対立し、587年に守屋を滅ぼしました。さらに、馬子は自身が擁立した崇峻天皇を592年に暗殺しました。このようにして、蘇我氏が実権を握りました。
==推古朝の外交と内政==
崇峻天皇が暗殺されたのち、飛鳥で'''推古天皇'''が即位しました。初の女性の天皇です。ここで登用されたのが'''厩戸王'''(のちの'''聖徳太子''')でした。『日本書紀』にも、「摂政」という言葉があり、政治に参画したことがうかがえます。推古天皇も厩戸王も蘇我氏と血縁があり、蘇我馬子の影響力が強い政権でした。推古天皇は、厩戸王と蘇我馬子らに仏教を興隆させるよう命じました。これは、仏教が一部の人に信仰されるのにとどまっていたからです。蘇我馬子は、'''法興寺'''('''飛鳥寺''')を、厩戸王は、'''四天王寺'''や'''法隆寺'''('''斑鳩寺''')を、秦河勝も広隆寺を建立しました。
推古朝では、中国統一王朝である'''隋'''と外交を結ぶため、'''遣隋使'''を派遣しました。『隋書』によれば、600年に一度遣隋使を派遣していますが、『日本書紀』などにはその記述がありません。
遣隋使からの情報により、推古朝は、国家組織を再編成しようとしました。603年に'''冠位十二階'''を定め、個人の功績に応じて冠位を与えました。これにより、それまでの氏姓制度によって集団ごとに編成された身分秩序を再編しようとしました。翌604年にも'''憲法十七条'''を定めました。これは、役人を統制するための道徳規範としての意味を持ちます。憲法十七条は、仏教を重んじているのに加え、日本古来の精神性と儒教や道教など大陸からもたらされた教えを融合させているのが特徴です。
国家組織を再編成した推古朝は、607年にも'''小野妹子'''を遣隋使として、派遣しました。この時妹子は、国書を隋の皇帝であった煬帝に差し出しましたが、無礼だとされました。なぜならその国書は、倭が隋に従属しないという態度を示していたためです。倭の五王までは、中国の王朝に冊封をもとめていたので大きな変化でした。結局、煬帝は、高句麗に侵攻している情勢もあって、裴世清を倭に送りました。
国家体制が充実してきた推古朝は、歴史書編纂にも取り組みました。厩戸王と蘇我馬子が中心となり、620年に『天皇記』や『国記』などを編纂しました。これらは、6世紀に成立した「帝紀」や「旧辞」を基に、天皇と諸氏の関係性を示し、天皇の支配が正当であることを示そうとしていたと考えられます。
==7世紀の東アジアと倭国==
3度目の遣隋使では、留学生や留学僧を同行させました。中国の制度や思想、文化などを取り込もうとしたのです。このとき、留学生の'''高向玄理'''や留学僧の'''旻'''・'''南淵請安'''が重要です。その後、4度目の遣隋使として犬上御田鍬を送りましたが、これが最後の遣隋使となります。隋が滅び唐が建国したからです。唐は、律令法に基づいて中央集権的な国家体制を展開し、朝鮮半島を圧迫していました。前述の留学生や留学僧は、唐の建国に学び帰国した後、7世紀初めの政治に大きな影響を及ぼしました。
このころ倭国は、蘇我氏がさらに権力を拡大していました。馬子の子である蘇我蝦夷に続き、その子の'''蘇我入鹿'''がさらなる権力をふるいました。さらに入鹿は、厩戸王の子である山背大兄王を自害に追い込みました。これは、蘇我氏系の天皇のもと蘇我氏が権力をふるうことを目指したものだと考えられます。これに対して、'''中大兄皇子'''と'''中臣鎌足'''(のちの藤原鎌足)を中心に、蘇我倉山田石川麻呂の協力もあって蘇我入鹿を殺害しました。さらに翌日、蘇我蝦夷も自殺に追い込みました。これを'''乙巳の変'''と言います。
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 『[https://ten.tokyo-shoseki.co.jp/text/hs/shakai/16596/ 日本史探究]』東京書籍株式会社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
pvhx40g1pkoxsyxs2ymnseljolz2i8i
263417
263382
2024-11-13T11:38:13Z
Kwawe
68789
/* 6世紀の朝鮮半島と倭 */ 大伴氏と蘇我氏の対立を記述。
263417
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>古代国家の形成Ⅰ
==6世紀の朝鮮半島と倭==
5世紀の朝鮮半島は、高句麗と百済の間で戦争になりました。475年、高句麗が漢城(百済の首都)を攻めました。その結果、百済の国王は降伏して、高句麗の兵士に殺されました。降伏後の百済は首都を熊津から扶余に引っ越し、加耶地域まで影響力を広げました。日本のヤマト政権も伽耶地域に関心がありました。加耶諸国と仲良くしたいので、兵士を朝鮮半島に送りました。しかし、伽耶諸国は「自分達の力だけで国を動かしていきたい」と考えるようになりました。512年、加耶地域の西側が百済の支配下に入るようになりました。6世紀を迎えると、新羅もかなり力をつけ始めます。新羅は百済と争いながら、伽耶諸国を新羅の領土に入れました。その結果、ヤマト政権は朝鮮半島の影響力を失いました。
継体天皇が亡くなると、ヤマト政権も大伴金村派(安閑天皇と宣化天皇)と蘇我稲目派(欽明天皇)に分かれました(二朝併立)。539年、大伴金村と蘇我稲目が仲直りします。仲直りすると、欽明天皇が国をまとめます。540年、大伴金村は物部尾輿から朝鮮半島政策でかなり怒られ、政権を退くようになりました。
『日本書紀』にも、伽耶西部に百済の支配権が及んだことを問題視されたことが記載されています。このころ、'''仏教'''が正式に伝来しました。百済の聖明王が欽明天皇に仏像や経典を送ったとされます。ただし、それまでにも民間では、仏教の伝来があったとされます。
大伴氏が衰退した後、大王家の欽明天皇のもと物部氏と新興の蘇我氏が台頭しました。蘇我氏は、①大王家と婚姻関係を結ぶ②渡来人との連携を強化する③屯倉など財政権を強化するなどの方法で勢力を拡大していきました。さらに、仏教を積極的に受容しました。一方で、物部氏や中臣氏は、在来の信仰を重んじ、仏教を排除しようとしていました。そんな中、'''蘇我馬子'''は王位継承問題もからんで'''物部守屋'''と対立し、587年に守屋を滅ぼしました。さらに、馬子は自身が擁立した崇峻天皇を592年に暗殺しました。このようにして、蘇我氏が実権を握りました。
==推古朝の外交と内政==
崇峻天皇が暗殺されたのち、飛鳥で'''推古天皇'''が即位しました。初の女性の天皇です。ここで登用されたのが'''厩戸王'''(のちの'''聖徳太子''')でした。『日本書紀』にも、「摂政」という言葉があり、政治に参画したことがうかがえます。推古天皇も厩戸王も蘇我氏と血縁があり、蘇我馬子の影響力が強い政権でした。推古天皇は、厩戸王と蘇我馬子らに仏教を興隆させるよう命じました。これは、仏教が一部の人に信仰されるのにとどまっていたからです。蘇我馬子は、'''法興寺'''('''飛鳥寺''')を、厩戸王は、'''四天王寺'''や'''法隆寺'''('''斑鳩寺''')を、秦河勝も広隆寺を建立しました。
推古朝では、中国統一王朝である'''隋'''と外交を結ぶため、'''遣隋使'''を派遣しました。『隋書』によれば、600年に一度遣隋使を派遣していますが、『日本書紀』などにはその記述がありません。
遣隋使からの情報により、推古朝は、国家組織を再編成しようとしました。603年に'''冠位十二階'''を定め、個人の功績に応じて冠位を与えました。これにより、それまでの氏姓制度によって集団ごとに編成された身分秩序を再編しようとしました。翌604年にも'''憲法十七条'''を定めました。これは、役人を統制するための道徳規範としての意味を持ちます。憲法十七条は、仏教を重んじているのに加え、日本古来の精神性と儒教や道教など大陸からもたらされた教えを融合させているのが特徴です。
国家組織を再編成した推古朝は、607年にも'''小野妹子'''を遣隋使として、派遣しました。この時妹子は、国書を隋の皇帝であった煬帝に差し出しましたが、無礼だとされました。なぜならその国書は、倭が隋に従属しないという態度を示していたためです。倭の五王までは、中国の王朝に冊封をもとめていたので大きな変化でした。結局、煬帝は、高句麗に侵攻している情勢もあって、裴世清を倭に送りました。
国家体制が充実してきた推古朝は、歴史書編纂にも取り組みました。厩戸王と蘇我馬子が中心となり、620年に『天皇記』や『国記』などを編纂しました。これらは、6世紀に成立した「帝紀」や「旧辞」を基に、天皇と諸氏の関係性を示し、天皇の支配が正当であることを示そうとしていたと考えられます。
==7世紀の東アジアと倭国==
3度目の遣隋使では、留学生や留学僧を同行させました。中国の制度や思想、文化などを取り込もうとしたのです。このとき、留学生の'''高向玄理'''や留学僧の'''旻'''・'''南淵請安'''が重要です。その後、4度目の遣隋使として犬上御田鍬を送りましたが、これが最後の遣隋使となります。隋が滅び唐が建国したからです。唐は、律令法に基づいて中央集権的な国家体制を展開し、朝鮮半島を圧迫していました。前述の留学生や留学僧は、唐の建国に学び帰国した後、7世紀初めの政治に大きな影響を及ぼしました。
このころ倭国は、蘇我氏がさらに権力を拡大していました。馬子の子である蘇我蝦夷に続き、その子の'''蘇我入鹿'''がさらなる権力をふるいました。さらに入鹿は、厩戸王の子である山背大兄王を自害に追い込みました。これは、蘇我氏系の天皇のもと蘇我氏が権力をふるうことを目指したものだと考えられます。これに対して、'''中大兄皇子'''と'''中臣鎌足'''(のちの藤原鎌足)を中心に、蘇我倉山田石川麻呂の協力もあって蘇我入鹿を殺害しました。さらに翌日、蘇我蝦夷も自殺に追い込みました。これを'''乙巳の変'''と言います。
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 『[https://ten.tokyo-shoseki.co.jp/text/hs/shakai/16596/ 日本史探究]』東京書籍株式会社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
tswg6dipla3m45j3kqhy72uaeyfom7v
263418
263417
2024-11-13T11:39:39Z
Kwawe
68789
/* 6世紀の朝鮮半島と倭 */
263418
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>古代国家の形成Ⅰ
==6世紀の朝鮮半島と倭==
5世紀の朝鮮半島は、高句麗と百済の間で戦争になりました。475年、高句麗が漢城(百済の首都)を攻めました。その結果、百済の国王は降伏して、高句麗の兵士に殺されました。降伏後の百済は首都を熊津から扶余に引っ越し、加耶地域まで影響力を広げました。日本のヤマト政権も伽耶地域に関心がありました。加耶諸国と仲良くしたいので、兵士を朝鮮半島に送りました。しかし、伽耶諸国は「自分達の力だけで国を動かしていきたい」と考えるようになりました。512年、加耶地域の西側が百済の支配下に入るようになりました。6世紀を迎えると、新羅もかなり力をつけ始めます。新羅は百済と争いながら、伽耶諸国を新羅の領土に入れました。その結果、ヤマト政権は朝鮮半島の影響力を失いました。
継体天皇が亡くなると、ヤマト政権も大伴金村派(安閑天皇と宣化天皇)と蘇我稲目派(欽明天皇)に分かれました(二朝併立)。539年、大伴金村と蘇我稲目が仲直りします。仲直りすると、欽明天皇が国をまとめます。540年、大伴金村は物部尾輿から朝鮮半島政策でかなり怒られ、政権を退くようになりました。
このころ、'''仏教'''が正式に伝来しました。百済の聖明王が欽明天皇に仏像や経典を送ったとされます。ただし、それまでにも民間では、仏教の伝来があったとされます。
大伴氏が衰退した後、大王家の欽明天皇のもと物部氏と新興の蘇我氏が台頭しました。蘇我氏は、①大王家と婚姻関係を結ぶ②渡来人との連携を強化する③屯倉など財政権を強化するなどの方法で勢力を拡大していきました。さらに、仏教を積極的に受容しました。一方で、物部氏や中臣氏は、在来の信仰を重んじ、仏教を排除しようとしていました。そんな中、'''蘇我馬子'''は王位継承問題もからんで'''物部守屋'''と対立し、587年に守屋を滅ぼしました。さらに、馬子は自身が擁立した崇峻天皇を592年に暗殺しました。このようにして、蘇我氏が実権を握りました。
==推古朝の外交と内政==
崇峻天皇が暗殺されたのち、飛鳥で'''推古天皇'''が即位しました。初の女性の天皇です。ここで登用されたのが'''厩戸王'''(のちの'''聖徳太子''')でした。『日本書紀』にも、「摂政」という言葉があり、政治に参画したことがうかがえます。推古天皇も厩戸王も蘇我氏と血縁があり、蘇我馬子の影響力が強い政権でした。推古天皇は、厩戸王と蘇我馬子らに仏教を興隆させるよう命じました。これは、仏教が一部の人に信仰されるのにとどまっていたからです。蘇我馬子は、'''法興寺'''('''飛鳥寺''')を、厩戸王は、'''四天王寺'''や'''法隆寺'''('''斑鳩寺''')を、秦河勝も広隆寺を建立しました。
推古朝では、中国統一王朝である'''隋'''と外交を結ぶため、'''遣隋使'''を派遣しました。『隋書』によれば、600年に一度遣隋使を派遣していますが、『日本書紀』などにはその記述がありません。
遣隋使からの情報により、推古朝は、国家組織を再編成しようとしました。603年に'''冠位十二階'''を定め、個人の功績に応じて冠位を与えました。これにより、それまでの氏姓制度によって集団ごとに編成された身分秩序を再編しようとしました。翌604年にも'''憲法十七条'''を定めました。これは、役人を統制するための道徳規範としての意味を持ちます。憲法十七条は、仏教を重んじているのに加え、日本古来の精神性と儒教や道教など大陸からもたらされた教えを融合させているのが特徴です。
国家組織を再編成した推古朝は、607年にも'''小野妹子'''を遣隋使として、派遣しました。この時妹子は、国書を隋の皇帝であった煬帝に差し出しましたが、無礼だとされました。なぜならその国書は、倭が隋に従属しないという態度を示していたためです。倭の五王までは、中国の王朝に冊封をもとめていたので大きな変化でした。結局、煬帝は、高句麗に侵攻している情勢もあって、裴世清を倭に送りました。
国家体制が充実してきた推古朝は、歴史書編纂にも取り組みました。厩戸王と蘇我馬子が中心となり、620年に『天皇記』や『国記』などを編纂しました。これらは、6世紀に成立した「帝紀」や「旧辞」を基に、天皇と諸氏の関係性を示し、天皇の支配が正当であることを示そうとしていたと考えられます。
==7世紀の東アジアと倭国==
3度目の遣隋使では、留学生や留学僧を同行させました。中国の制度や思想、文化などを取り込もうとしたのです。このとき、留学生の'''高向玄理'''や留学僧の'''旻'''・'''南淵請安'''が重要です。その後、4度目の遣隋使として犬上御田鍬を送りましたが、これが最後の遣隋使となります。隋が滅び唐が建国したからです。唐は、律令法に基づいて中央集権的な国家体制を展開し、朝鮮半島を圧迫していました。前述の留学生や留学僧は、唐の建国に学び帰国した後、7世紀初めの政治に大きな影響を及ぼしました。
このころ倭国は、蘇我氏がさらに権力を拡大していました。馬子の子である蘇我蝦夷に続き、その子の'''蘇我入鹿'''がさらなる権力をふるいました。さらに入鹿は、厩戸王の子である山背大兄王を自害に追い込みました。これは、蘇我氏系の天皇のもと蘇我氏が権力をふるうことを目指したものだと考えられます。これに対して、'''中大兄皇子'''と'''中臣鎌足'''(のちの藤原鎌足)を中心に、蘇我倉山田石川麻呂の協力もあって蘇我入鹿を殺害しました。さらに翌日、蘇我蝦夷も自殺に追い込みました。これを'''乙巳の変'''と言います。
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 『[https://ten.tokyo-shoseki.co.jp/text/hs/shakai/16596/ 日本史探究]』東京書籍株式会社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
0mkf4hfvjjl5k7jdc5bqwlp8l4xo22h
263419
263418
2024-11-13T11:41:33Z
Kwawe
68789
/* 6世紀の朝鮮半島と倭 */
263419
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>古代国家の形成Ⅰ
==6世紀の朝鮮半島と倭==
5世紀の朝鮮半島は、高句麗と百済の間で戦争になりました。475年、高句麗が漢城(百済の首都)を攻めました。その結果、百済の国王は降伏して、高句麗の兵士に殺されました。降伏後の百済は首都を熊津から扶余に引っ越し、加耶地域まで影響力を広げました。日本のヤマト政権も伽耶地域に関心がありました。加耶諸国と仲良くしたいので、兵士を朝鮮半島に送りました。しかし、伽耶諸国は「自分達の力だけで国を動かしていきたい」と考えるようになりました。512年、加耶地域の西側が百済の支配下に入るようになりました。6世紀を迎えると、新羅もかなり力をつけ始めます。新羅は百済と争いながら、伽耶諸国を新羅の領土に入れました。その結果、ヤマト政権は朝鮮半島の影響力を失いました。
継体天皇が亡くなると、ヤマト政権も大伴金村派(安閑天皇と宣化天皇)と蘇我稲目派(欽明天皇)に分かれました(二朝併立)。539年、大伴金村と蘇我稲目が仲直りします。仲直りすると、欽明天皇が国をまとめます。なお、大伴金村は物部尾輿から朝鮮半島政策でかなり怒られ、政権を540年に退くようになりました。
このころ、'''仏教'''が正式に伝来しました。百済の聖明王が欽明天皇に仏像や経典を送ったとされます。ただし、それまでにも民間では、仏教の伝来があったとされます。
大伴氏が衰退した後、大王家の欽明天皇のもと物部氏と新興の蘇我氏が台頭しました。蘇我氏は、①大王家と婚姻関係を結ぶ②渡来人との連携を強化する③屯倉など財政権を強化するなどの方法で勢力を拡大していきました。さらに、仏教を積極的に受容しました。一方で、物部氏や中臣氏は、在来の信仰を重んじ、仏教を排除しようとしていました。そんな中、'''蘇我馬子'''は王位継承問題もからんで'''物部守屋'''と対立し、587年に守屋を滅ぼしました。さらに、馬子は自身が擁立した崇峻天皇を592年に暗殺しました。このようにして、蘇我氏が実権を握りました。
==推古朝の外交と内政==
崇峻天皇が暗殺されたのち、飛鳥で'''推古天皇'''が即位しました。初の女性の天皇です。ここで登用されたのが'''厩戸王'''(のちの'''聖徳太子''')でした。『日本書紀』にも、「摂政」という言葉があり、政治に参画したことがうかがえます。推古天皇も厩戸王も蘇我氏と血縁があり、蘇我馬子の影響力が強い政権でした。推古天皇は、厩戸王と蘇我馬子らに仏教を興隆させるよう命じました。これは、仏教が一部の人に信仰されるのにとどまっていたからです。蘇我馬子は、'''法興寺'''('''飛鳥寺''')を、厩戸王は、'''四天王寺'''や'''法隆寺'''('''斑鳩寺''')を、秦河勝も広隆寺を建立しました。
推古朝では、中国統一王朝である'''隋'''と外交を結ぶため、'''遣隋使'''を派遣しました。『隋書』によれば、600年に一度遣隋使を派遣していますが、『日本書紀』などにはその記述がありません。
遣隋使からの情報により、推古朝は、国家組織を再編成しようとしました。603年に'''冠位十二階'''を定め、個人の功績に応じて冠位を与えました。これにより、それまでの氏姓制度によって集団ごとに編成された身分秩序を再編しようとしました。翌604年にも'''憲法十七条'''を定めました。これは、役人を統制するための道徳規範としての意味を持ちます。憲法十七条は、仏教を重んじているのに加え、日本古来の精神性と儒教や道教など大陸からもたらされた教えを融合させているのが特徴です。
国家組織を再編成した推古朝は、607年にも'''小野妹子'''を遣隋使として、派遣しました。この時妹子は、国書を隋の皇帝であった煬帝に差し出しましたが、無礼だとされました。なぜならその国書は、倭が隋に従属しないという態度を示していたためです。倭の五王までは、中国の王朝に冊封をもとめていたので大きな変化でした。結局、煬帝は、高句麗に侵攻している情勢もあって、裴世清を倭に送りました。
国家体制が充実してきた推古朝は、歴史書編纂にも取り組みました。厩戸王と蘇我馬子が中心となり、620年に『天皇記』や『国記』などを編纂しました。これらは、6世紀に成立した「帝紀」や「旧辞」を基に、天皇と諸氏の関係性を示し、天皇の支配が正当であることを示そうとしていたと考えられます。
==7世紀の東アジアと倭国==
3度目の遣隋使では、留学生や留学僧を同行させました。中国の制度や思想、文化などを取り込もうとしたのです。このとき、留学生の'''高向玄理'''や留学僧の'''旻'''・'''南淵請安'''が重要です。その後、4度目の遣隋使として犬上御田鍬を送りましたが、これが最後の遣隋使となります。隋が滅び唐が建国したからです。唐は、律令法に基づいて中央集権的な国家体制を展開し、朝鮮半島を圧迫していました。前述の留学生や留学僧は、唐の建国に学び帰国した後、7世紀初めの政治に大きな影響を及ぼしました。
このころ倭国は、蘇我氏がさらに権力を拡大していました。馬子の子である蘇我蝦夷に続き、その子の'''蘇我入鹿'''がさらなる権力をふるいました。さらに入鹿は、厩戸王の子である山背大兄王を自害に追い込みました。これは、蘇我氏系の天皇のもと蘇我氏が権力をふるうことを目指したものだと考えられます。これに対して、'''中大兄皇子'''と'''中臣鎌足'''(のちの藤原鎌足)を中心に、蘇我倉山田石川麻呂の協力もあって蘇我入鹿を殺害しました。さらに翌日、蘇我蝦夷も自殺に追い込みました。これを'''乙巳の変'''と言います。
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 『[https://ten.tokyo-shoseki.co.jp/text/hs/shakai/16596/ 日本史探究]』東京書籍株式会社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
8fsqc1opn7j7md9bbtglhsv7z09xsww
263420
263419
2024-11-13T11:42:08Z
Kwawe
68789
/* 6世紀の朝鮮半島と倭 */
263420
wikitext
text/x-wiki
[[小学校・中学校・高等学校の学習]]>[[高等学校の学習]]>[[高等学校地理歴史]]>[[高等学校日本史探究]]>古代国家の形成Ⅰ
==6世紀の朝鮮半島と倭==
5世紀の朝鮮半島は、高句麗と百済の間で戦争になりました。475年、高句麗が漢城(百済の首都)を攻めました。その結果、百済の国王は降伏して、高句麗の兵士に殺されました。降伏後の百済は首都を熊津から扶余に引っ越し、加耶地域まで影響力を広げました。日本のヤマト政権も伽耶地域に関心がありました。加耶諸国と仲良くしたいので、兵士を朝鮮半島に送りました。しかし、伽耶諸国は「自分達の力だけで国を動かしていきたい」と考えるようになりました。512年、加耶地域の西側が百済の支配下に入るようになりました。6世紀を迎えると、新羅もかなり力をつけ始めます。新羅は百済と争いながら、伽耶諸国を新羅の領土に入れました。その結果、ヤマト政権は朝鮮半島の影響力を失いました。
継体天皇が亡くなると、ヤマト政権も大伴金村派(安閑天皇と宣化天皇)と蘇我稲目派(欽明天皇)に分かれました(二朝併立)。539年、大伴金村と蘇我稲目が仲直りします。仲直りすると、欽明天皇が国をまとめます。なお、大伴金村は物部尾輿から朝鮮半島政策でかなり怒られ、540年に政権を退くようになりました。
このころ、'''仏教'''が正式に伝来しました。百済の聖明王が欽明天皇に仏像や経典を送ったとされます。ただし、それまでにも民間では、仏教の伝来があったとされます。
大伴氏が衰退した後、大王家の欽明天皇のもと物部氏と新興の蘇我氏が台頭しました。蘇我氏は、①大王家と婚姻関係を結ぶ②渡来人との連携を強化する③屯倉など財政権を強化するなどの方法で勢力を拡大していきました。さらに、仏教を積極的に受容しました。一方で、物部氏や中臣氏は、在来の信仰を重んじ、仏教を排除しようとしていました。そんな中、'''蘇我馬子'''は王位継承問題もからんで'''物部守屋'''と対立し、587年に守屋を滅ぼしました。さらに、馬子は自身が擁立した崇峻天皇を592年に暗殺しました。このようにして、蘇我氏が実権を握りました。
==推古朝の外交と内政==
崇峻天皇が暗殺されたのち、飛鳥で'''推古天皇'''が即位しました。初の女性の天皇です。ここで登用されたのが'''厩戸王'''(のちの'''聖徳太子''')でした。『日本書紀』にも、「摂政」という言葉があり、政治に参画したことがうかがえます。推古天皇も厩戸王も蘇我氏と血縁があり、蘇我馬子の影響力が強い政権でした。推古天皇は、厩戸王と蘇我馬子らに仏教を興隆させるよう命じました。これは、仏教が一部の人に信仰されるのにとどまっていたからです。蘇我馬子は、'''法興寺'''('''飛鳥寺''')を、厩戸王は、'''四天王寺'''や'''法隆寺'''('''斑鳩寺''')を、秦河勝も広隆寺を建立しました。
推古朝では、中国統一王朝である'''隋'''と外交を結ぶため、'''遣隋使'''を派遣しました。『隋書』によれば、600年に一度遣隋使を派遣していますが、『日本書紀』などにはその記述がありません。
遣隋使からの情報により、推古朝は、国家組織を再編成しようとしました。603年に'''冠位十二階'''を定め、個人の功績に応じて冠位を与えました。これにより、それまでの氏姓制度によって集団ごとに編成された身分秩序を再編しようとしました。翌604年にも'''憲法十七条'''を定めました。これは、役人を統制するための道徳規範としての意味を持ちます。憲法十七条は、仏教を重んじているのに加え、日本古来の精神性と儒教や道教など大陸からもたらされた教えを融合させているのが特徴です。
国家組織を再編成した推古朝は、607年にも'''小野妹子'''を遣隋使として、派遣しました。この時妹子は、国書を隋の皇帝であった煬帝に差し出しましたが、無礼だとされました。なぜならその国書は、倭が隋に従属しないという態度を示していたためです。倭の五王までは、中国の王朝に冊封をもとめていたので大きな変化でした。結局、煬帝は、高句麗に侵攻している情勢もあって、裴世清を倭に送りました。
国家体制が充実してきた推古朝は、歴史書編纂にも取り組みました。厩戸王と蘇我馬子が中心となり、620年に『天皇記』や『国記』などを編纂しました。これらは、6世紀に成立した「帝紀」や「旧辞」を基に、天皇と諸氏の関係性を示し、天皇の支配が正当であることを示そうとしていたと考えられます。
==7世紀の東アジアと倭国==
3度目の遣隋使では、留学生や留学僧を同行させました。中国の制度や思想、文化などを取り込もうとしたのです。このとき、留学生の'''高向玄理'''や留学僧の'''旻'''・'''南淵請安'''が重要です。その後、4度目の遣隋使として犬上御田鍬を送りましたが、これが最後の遣隋使となります。隋が滅び唐が建国したからです。唐は、律令法に基づいて中央集権的な国家体制を展開し、朝鮮半島を圧迫していました。前述の留学生や留学僧は、唐の建国に学び帰国した後、7世紀初めの政治に大きな影響を及ぼしました。
このころ倭国は、蘇我氏がさらに権力を拡大していました。馬子の子である蘇我蝦夷に続き、その子の'''蘇我入鹿'''がさらなる権力をふるいました。さらに入鹿は、厩戸王の子である山背大兄王を自害に追い込みました。これは、蘇我氏系の天皇のもと蘇我氏が権力をふるうことを目指したものだと考えられます。これに対して、'''中大兄皇子'''と'''中臣鎌足'''(のちの藤原鎌足)を中心に、蘇我倉山田石川麻呂の協力もあって蘇我入鹿を殺害しました。さらに翌日、蘇我蝦夷も自殺に追い込みました。これを'''乙巳の変'''と言います。
== 資料出所 ==
* 平雅行、横田冬彦ほか編著『[https://www.jikkyo.co.jp/material/dbook/R5_chireki_20220510/?pNo=6 日本史探究]』実教出版株式会社 2023年
* 佐藤信、五味文彦ほか編著『[https://new-textbook.yamakawa.co.jp/j-history/ 詳説日本史探究]』株式会社山川出版社 2023年
* 『[https://ten.tokyo-shoseki.co.jp/text/hs/shakai/16596/ 日本史探究]』東京書籍株式会社 2023年
* 山中裕典著'''『'''[https://www.amazon.co.jp/%E5%A4%A7%E5%AD%A6%E5%85%A5%E5%AD%A6%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88-%E6%97%A5%E6%9C%AC%E5%8F%B2B%E3%81%AE%E7%82%B9%E6%95%B0%E3%81%8C%E9%9D%A2%E7%99%BD%E3%81%84%E3%81%BB%E3%81%A9%E3%81%A8%E3%82%8C%E3%82%8B%E6%9C%AC-%E5%B1%B1%E4%B8%AD-%E8%A3%95%E5%85%B8/dp/4046041994/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=36OGLMABMI16H&keywords=%E5%85%B1%E9%80%9A%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2&qid=1673018030&sprefix=%E4%BB%8A%E6%97%A5%E6%89%93%E3%81%A4%E3%83%86%E3%82%B9%E3%83%88+%E6%97%A5%E6%9C%AC%E5%8F%B2%2Caps%2C248&sr=8-7 大学入学共通テスト 日本史Bの点数が面白いほどとれる本]'''』'''株式会社KADOKAWA 2020年
* 佐藤信、五味文彦ほか編著『[https://www.amazon.co.jp/%E8%A9%B3%E8%AA%AC%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6-%E4%BD%90%E8%97%A4-%E4%BF%A1/dp/4634010739/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2JVCFQ6ZSAM4W&keywords=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6&qid=1673018227&sprefix=%E6%97%A5%E6%9C%AC%E5%8F%B2%E7%A0%94%E7%A9%B6%2Caps%2C229&sr=8-1 詳説日本史研究]』株式会社山川出版社 2017年
* 河合敦著『[https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84-%E6%B2%B3%E5%90%88%E6%95%A6%E3%81%AE-%E6%97%A5%E6%9C%AC%E5%8F%B2B-%E3%80%8C%E5%8E%9F%E5%A7%8B-%E9%8E%8C%E5%80%89%E3%80%8D%E3%81%AE%E7%89%B9%E5%88%A5%E8%AC%9B%E5%BA%A7-%E6%B2%B3%E5%90%88/dp/404600794X/ref=d_pd_sbs_sccl_2_1/355-7112149-5713814?pd_rd_w=H8Pxa&content-id=amzn1.sym.820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_p=820591ed-a555-4556-9bf6-5ebd5493c69e&pf_rd_r=ZWG9FNM6AD22NFF5WK2G&pd_rd_wg=scszo&pd_rd_r=8c1e9eda-f944-4c80-9e4e-7e35244ab2a6&pd_rd_i=404600794X&psc=1 世界一わかりやすい河合敦の日本史B[原始~鎌倉]の特別講座]』株式会社KADOKAWA 2014年(絶版本)
[[カテゴリ:高等学校日本史探究]]
owp6iiulfrh6c3syimk9x9rkdahft84
利用者:にくぬきカレー
2
43324
263384
2024-11-12T13:05:47Z
にくぬきカレー
84903
ページの作成:「授業で参考にウィキブックスを使っていましたが、少し修正したほうがいいと思う箇所があり、せっかくなので参加してみた次第です。一応mirahezeの方で活動していたので記法などは理解しています。」
263384
wikitext
text/x-wiki
授業で参考にウィキブックスを使っていましたが、少し修正したほうがいいと思う箇所があり、せっかくなので参加してみた次第です。一応mirahezeの方で活動していたので記法などは理解しています。
6yacian68xmpw3c06fidkll8r0vt4gf