เชถเชพ เชฎเชพเชŸเซ‡ เช—เซ‹ เชกเชฟเชเชพเช‡เชจ เชธเซเชฎเชพเชฐเซเชŸ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซเชธ เชฎเชพเชŸเซ‡ เช–เชฐเชพเชฌ เช›เซ‡

เช›เซ‡เชฒเซเชฒเชพ เชฎเชนเชฟเชจเชพเช“เชฅเซ€ เชนเซเช‚ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฎเชพเชŸเซ‡ Go เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚. เช•เชฒเซเชชเชจเชพเชจเซ‹ เชชเซเชฐเชพเชตเซ‹ (เช†เชถเชฐเซ‡: เชเช• เชตเชฟเชšเชพเชฐเชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เช•เซ‹เชก) เชคเซ‡เชจเชพ เชฎเชซเชค เชธเชฎเชฏเชฎเชพเช‚, เช†เช‚เชถเชฟเช• เชฐเซ€เชคเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชชเซ‹เชคเซ‡ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡ เช…เชจเซ‡ เช† เชฒเซ‡เช–เชจเซ‹ เชนเซ‡เชคเซ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช—เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช…เชจเซเชญเชต เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชฅเซ‹เชกเชพเช• เชถเชฌเซเชฆเซ‹เชจเซ‡ เชชเชพเชคเซเชฐ เช›เซ‡. เชฌเชจเชตเชพเชจเซเช‚ เชตเชšเชจ เช†เชชเซ‡ เช›เซ‡ (เช†เชถเชฐเซ‡: 2015 เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เชฒเซ‡เช–) เช—เช‚เชญเซ€เชฐ เชธเซเช•เซ‡เชฒเซ‡เชฌเชฒ เช•เซ‹เชก เชฎเชพเชŸเซ‡เชจเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชญเชพเชทเชพ. เช† เชญเชพเชทเชพ Google เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชœเซเชฏเชพเช‚ เชคเซ‡เชจเซ‹ เชธเช•เซเชฐเชฟเชฏ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡. เชฌเซ‹เชŸเชฎ เชฒเชพเช‡เชจ, เชนเซเช‚ เชชเซเชฐเชพเชฎเชพเชฃเชฟเช•เชชเชฃเซ‡ เชฎเชพเชจเซเช‚ เช›เซเช‚ เช•เซ‡ เช—เซ‹ เชญเชพเชทเชพเชจเซ€ เชกเชฟเชเชพเช‡เชจ เชธเซเชฎเชพเชฐเซเชŸ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชฎเชพเชŸเซ‡ เช–เชฐเชพเชฌ เช›เซ‡.

เชจเชฌเชณเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡?

เช—เซ‹ เชถเซ€เช–เชตเซเช‚ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡, เชเชŸเชฒเซเช‚ เชธเชฐเชณ เช›เซ‡ เช•เซ‡ เชชเชฐเชฟเชšเชฏ เชฎเชจเซ‡ เชเช• เชธเชพเช‚เชœเซ‡ เชฒเชˆ เช—เชฏเซ‹, เชœเซ‡เชจเชพ เชชเช›เซ€ เชนเซเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชคเซเชชเชพเชฆเช• เชฐเซ€เชคเซ‡ เช•เซ‹เชก เช•เชฐเซ€ เชถเช•เซเชฏเซ‹. เชนเซเช‚ เช—เซ‹ เชถเซ€เช–เชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชฏเซ‡เชฒ เชชเซเชธเซเชคเช• เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡ เช—เซ‹เชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—เชจเซ‹ เชชเชฐเชฟเชšเชฏ (เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฃ), เชคเซ‡ เช“เชจเชฒเชพเชˆเชจ เช‰เชชเชฒเชฌเซเชง เช›เซ‡. เช† เชชเซเชธเซเชคเช•, เช—เซ‹ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชจเซ€ เชœเซ‡เชฎ, เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡, เชธเชพเชฐเชพ เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช›เซ‡, เช…เชจเซ‡ เชฒเช—เชญเช— 150 เชชเซƒเชทเซเช เซ‹ เชงเชฐเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ เชเช• เชฌเซ‡เช เช•เชฎเชพเช‚ เชตเชพเช‚เชšเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช† เชธเชฐเชณเชคเชพ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชคเชพเชœเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชตเชงเซ เชœเชŸเชฟเชฒ เชŸเซ‡เช•เชจเซ‹เชฒเซ‹เชœเซ€เชฅเซ€ เชญเชฐเซ‡เชฒเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฆเซเชจเชฟเชฏเชพเชฎเชพเช‚. เชชเชฐเช‚เชคเซ เช…เช‚เชคเซ‡, เชตเชนเซ‡เชฒเชพ เช…เชฅเชตเชพ เชชเช›เซ€เชจเชพ เชตเชฟเชšเชพเชฐเซ‹ เช‰เชฆเซเชญเชตเซ‡ เช›เซ‡: "เชถเซเช‚ เช† เช–เชฐเซ‡เช–เชฐ เช†เชตเซเช‚ เช›เซ‡?"

Google เชฆเชพเชตเซ‹ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ Go เชจเซ€ เชธเชฐเชณเชคเชพ เช เชคเซ‡เชจเซเช‚ เชตเซ‡เชšเชพเชฃ เชฌเชฟเช‚เชฆเซ เช›เซ‡ เช…เชจเซ‡ เชญเชพเชทเชพ เชฎเซ‹เชŸเซ€ เชŸเซ€เชฎเซ‹เชฎเชพเช‚ เชฎเชนเชคเซเชคเชฎ เช‰เชคเซเชชเชพเชฆเช•เชคเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชถเช‚เช•เชพ เช›เซ‡. เชเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เช›เซ‡ เชœเซ‡ เช•เซเชฏเชพเช‚ เชคเซ‹ เช–เซ‚เชŸเซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชตเชงเซ เชชเชกเชคเซ€ เชตเชฟเช—เชคเชตเชพเชฐ เช›เซ‡. เช…เชจเซ‡ เชฌเชงเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชฎเชพเช‚ เชตเชฟเชถเซเชตเชพเชธเชจเชพ เช…เชญเชพเชตเชจเซ‡ เช•เชพเชฐเชฃเซ‡, เชเชตเซ€ เชงเชพเชฐเชฃเชพ เชธเชพเชฅเซ‡ เช•เซ‡ เชคเซ‡เช“ เช•เช‚เชˆเชชเชฃ เชฏเซ‹เช—เซเชฏ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชธเชฐเชณเชคเชพ เชฎเชพเชŸเซ‡เชจเซ€ เช† เช‡เชšเซเช›เชพ เช เชญเชพเชทเชพเชจเชพ เชกเชฟเชเชพเช‡เชจเชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชเช• เชธเชญเชพเชจ เชจเชฟเชฐเซเชฃเชฏ เชนเชคเซ‹, เช…เชจเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡, เช†เชชเชฃเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ€ เชชเซเชฐเซ‡เชฐเชฃเชพ เช…เชจเซ‡ เชคเซ‡เช“ Go เชฎเชพเช‚ เชถเซเช‚ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเชคเชพ เชคเซ‡ เชธเชฎเชœเชตเซเช‚ เชœเซ‹เชˆเช.

เชคเซ‹ เชถเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ เช†เชŸเชฒเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚? เช…เชนเซ€เช‚ เช•เซ‡เชŸเชฒเชพเช• เช…เชตเชคเชฐเชฃเซ‹ เช›เซ‡ เชฐเซ‹เชฌ เชชเชพเชˆเช• (เช†เชถเชฐเซ‡: เช—เซ‹ เชญเชพเชทเชพเชจเชพ เชธเชน-เชจเชฟเชฐเซเชฎเชพเชคเชพเช“เชฎเชพเช‚เชจเชพ เชเช•):

เช…เชนเซ€เช‚ เชฎเซเช–เซเชฏ เชฎเซเชฆเซเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เช…เชฎเชพเชฐเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ (เช†เชถเชฐเซ‡: Googlers) เชธเช‚เชถเซ‹เชงเช•เซ‹ เชจเชฅเซ€. เชคเซ‡เช“, เชเช• เชจเชฟเชฏเชฎ เชคเชฐเซ€เช•เซ‡, เชคเชฆเซเชฆเชจ เชฏเซเชตเชพเชจ เช›เซ‡, เช…เชญเซเชฏเชพเชธ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช†เชตเซ‡ เช›เซ‡, เช•เชฆเชพเชš เชคเซ‡เช“เช Java, เช…เชฅเชตเชพ C/C++, เช…เชฅเชตเชพ Python เชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชนเซ‹เชฏ. เชคเซ‡เช“ เชธเชพเชฐเซ€ เชญเชพเชทเชพ เชธเชฎเชœเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เช…เชฎเซ‡ เช‡เชšเซเช›เซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡เช“ เชธเชพเชฐเชพ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชฌเชจเชพเชตเซ‡. เชคเซ‡เชฅเซ€ เชœ เชคเซ‡เชฎเชจเซ€ เชญเชพเชทเชพ เชธเชฎเชœเชตเชพ เช…เชจเซ‡ เชถเซ€เช–เชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช.
 
เชคเซ‡ เชชเชฐเชฟเชšเชฟเชค เชนเซ‹เชตเชพ เชœเซ‹เชˆเช, เชฒเช—เชญเช— เชธเซ€ เชœเซ‡เชตเซเช‚ เชœ เชฌเซ‹เชฒเชคเชพ. Google เชชเชฐ เช•เชพเชฎ เช•เชฐเชคเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชคเซ‡เชฎเชจเซ€ เช•เชพเชฐเช•เชฟเชฐเซเชฆเซ€เชจเซ€ เชถเชฐเซ‚เช†เชค เชตเชนเซ‡เชฒเซ€ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช—เชค เชญเชพเชทเชพเช“เชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชนเซ‹เชฏ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ C เช•เซเชŸเซเช‚เชฌ. เชจเชตเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชฎเชพเช‚ เชเชกเชชเซ€ เช‰เชคเซเชชเชพเชฆเช•เชคเชพ เชฎเชพเชŸเซ‡เชจเซ€ เช†เชตเชถเซเชฏเช•เชคเชพเชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชญเชพเชทเชพ เช–เซ‚เชฌ เช†เชฎเซ‚เชฒ เชจ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช.

เชถเซเช‚? เชคเซ‡เชฅเซ€ เชฐเซ‹เชฌ เชชเชพเชˆเช• เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ Google เชจเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชเชŸเชฒเชพ เชธเชพเชฐเชพ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชœ เชคเซ‡เช“เช เชฎเซ‚เชฐเซเช– เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เชญเชพเชทเชพ เชฌเชจเชพเชตเซ€ เช›เซ‡ (เช†เชถเชฐเซ‡: เชกเชฎเซเชฌ เชกเชพเช‰เชจ) เชœเซ‡เชฅเซ€ เชคเซ‡เช“ เช•เช‚เชˆเช• เช•เชฐเซ€ เชถเช•เซ‡. เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชธเชพเชฅเซ€เชฆเชพเชฐเซ‹ เชชเชฐ เช•เซ‡เชตเซ‹ เช˜เชฎเช‚เชกเซ€ เชฆเซ‡เช–เชพเชต? เชนเซเช‚ เชนเช‚เชฎเซ‡เชถเชพ เชฎเชพเชจเซเช‚ เช›เซเช‚ เช•เซ‡ Google เชจเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชชเซƒเชฅเซเชตเซ€ เชชเชฐเชจเชพ เชธเซŒเชฅเซ€ เชคเซ‡เชœเชธเซเชตเซ€ เช…เชจเซ‡ เชถเซเชฐเซ‡เชทเซเช เชฎเชพเช‚เชฅเซ€ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เชšเซ‹เช•เซเช•เชธ เชคเซ‡เช“ เช•เช‚เชˆเช• เชตเชงเซ เชฎเซเชถเซเช•เซ‡เชฒ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡?

เช…เชคเชฟเชถเชฏ เชธเชฐเชณเชคเชพเชจเซ€ เช•เชฒเชพเช•เซƒเชคเชฟเช“

เช•เซ‹เชˆเชชเชฃ เชกเชฟเชเชพเช‡เชจเชฎเชพเช‚ เชธเชฐเชณ เชฌเชจเชตเซเช‚ เช เชฏเซ‹เช—เซเชฏ เชงเซเชฏเซ‡เชฏ เช›เซ‡, เช…เชจเซ‡ เช•เช‚เชˆเช• เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเซ‹ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชœเชŸเชฟเชฒ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพเชจเซ‹ (เช…เชฅเชตเชพ เชตเซเชฏเช•เซเชค) เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชเช• เชœเชŸเชฟเชฒ เชธเชพเชงเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡. เชœเชŸเชฟเชฒเชคเชพ เช…เชจเซ‡ เชœเชŸเชฟเชฒเชคเชพ เช เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซ€ เชถเซเชฐเซ‡เชทเซเช  เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชเช• เชฎเชงเซเชฏเชฎ เชญเซ‚เชฎเชฟ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชญเชพเชทเชพ เชญเชตเซเชฏ เช…เชฎเซ‚เชฐเซเชคเชคเชพ เชฌเชจเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡ เชธเชฎเชœเชตเชพ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡.

เชฌเชนเซ เช…เชญเชฟเชตเซเชฏเช•เซเชค เชจเชฅเซ€

เชธเชฐเชณเชคเชพ เชชเซเชฐเชคเซเชฏเซ‡เชจเซ€ เชคเซ‡เชจเซ€ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡, เช—เซ‹เชฎเชพเช‚ เชเชตเซ€ เชฐเชšเชจเชพเช“เชจเซ‹ เช…เชญเชพเชต เช›เซ‡ เชœเซ‡ เช…เชจเซเชฏ เชญเชพเชทเชพเช“เชฎเชพเช‚ เช•เซเชฆเชฐเชคเซ€ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชธเชพเชฐเซ‹ เชตเชฟเชšเชพเชฐ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชคเซ‡ เชตเชฐเซเชฌเซ‹เช เช•เซ‹เชกเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซ‡ เช›เซ‡. เช†เชจเซเช‚ เช•เชพเชฐเชฃ เชธเซเชชเชทเซเชŸ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช - เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เช…เชจเซเชฏ เชฒเซ‹เช•เซ‹เชจเชพ เช•เซ‹เชก เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชธเชฐเชณ เชนเซ‹เชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชนเช•เซ€เช•เชคเชฎเชพเช‚ เช† เชธเชฐเชณเซ€เช•เชฐเชฃเซ‹ เชซเช•เซเชค เชตเชพเช‚เชšเชจเช•เซเชทเชฎเชคเชพเชจเซ‡ เชจเซเช•เชธเชพเชจ เชชเชนเซ‹เช‚เชšเชพเชกเซ‡ เช›เซ‡. Go เชฎเชพเช‚ เช•เซ‹เชˆ เชธเช‚เช•เซเชทเซ‡เชช เชจเชฅเซ€: เช•เชพเช‚ เชคเซ‹ เช˜เชฃเซเช‚ เช…เชฅเชตเชพ เช•เช‚เชˆ เชจเชนเซ€เช‚.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เชจเซเชธเซ‹เชฒ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€ เช•เซ‡ เชœเซ‡ stdin เชตเชพเช‚เชšเซ‡ เช›เซ‡ เช…เชฅเชตเชพ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เชฆเชฒเซ€เชฒเซ‹เชฎเชพเช‚เชฅเซ€ เชซเชพเช‡เชฒ เช†เชจเชพ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชถเซ‡:

package main

import (
    "bufio"
    "flag"
    "fmt"
    "log"
    "os"
)

func main() {

    flag.Parse()
    flags := flag.Args()

    var text string
    var scanner *bufio.Scanner
    var err error

    if len(flags) > 0 {

        file, err := os.Open(flags[0])

        if err != nil {
            log.Fatal(err)
        }

        scanner = bufio.NewScanner(file)

    } else {
        scanner = bufio.NewScanner(os.Stdin)
    }

    for scanner.Scan() {
        text += scanner.Text()
    }

    err = scanner.Err()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(text)
}

เชœเซ‹ เช•เซ‡ เช† เช•เซ‹เชก เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซ‹ เชธเชพเชฎเชพเชจเซเชฏ เชฌเชจเชตเชพเชจเซ‹ เชชเชฃ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡, เช—เซ‹เชจเซ€ เชซเชฐเชœเชฟเชฏเชพเชค เชตเชฐเซเชฌเซ‹เชธเชฟเชŸเซ€ เช†เชกเซ‡ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชเช• เชธเชฐเชณ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพเชฅเซ€ เช•เซ‹เชกเชจเซ€ เชฎเซ‹เชŸเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซ‡ เช›เซ‡.

เช…เชนเซ€เช‚, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฎเชพเช‚ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เช›เซ‡ D:

import std.stdio, std.array, std.conv;

void main(string[] args)
{
    try
    {
        auto source = args.length > 1 ? File(args[1], "r") : stdin;
        auto text   = source.byLine.join.to!(string);

        writeln(text);
    }
    catch (Exception ex)
    {
        writeln(ex.msg);
    }
}

เช…เชจเซ‡ เชนเชตเซ‡ เช•เซ‹เชฃ เชตเชงเซ เชตเชพเช‚เชšเชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡? เชนเซเช‚ เชฎเชพเชฐเซ‹ เชฎเชค เชกเซ€เชจเซ‡ เช†เชชเซ€เชถ. เชคเซ‡เชจเซ‹ เช•เซ‹เชก เชตเชงเซ เชตเชพเช‚เชšเชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช•เซเชฐเชฟเชฏเชพเช“เชจเซเช‚ เชตเชงเซ เชธเซเชชเชทเซเชŸ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡. เชกเซ€ เชตเชงเซ เชœเชŸเชฟเชฒ เช–เซเชฏเชพเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ (เช†เชถเชฐเซ‡: เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏ เช•เซ‰เชฒ ะธ เชจเชฎเซ‚เชจเชพเช“) Go เช‰เชฆเชพเชนเชฐเชฃ เช•เชฐเชคเชพเช‚, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชจเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เช–เชฐเซ‡เช–เชฐ เช•เช‚เชˆ เชœเชŸเชฟเชฒ เชจเชฅเซ€.

เชจเช•เชฒ เช•เชฐเชตเชพเชจเซ‹ เชจเชฐเช•

เช—เซ‹เชฎเชพเช‚ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชธเซ‚เชšเชจ เชธเชพเชฎเชพเชจเซเชฏเชคเชพ เช›เซ‡. เช† เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชคเชฎเชพเชฎ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชกเชจเซ€ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชจเช•เชฒ เชŸเชพเชณเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซ‚เชฐเซเชฃเชพเช‚เช•เซ‹เชจเซ€ เชธเซ‚เชšเชฟเชจเชพ เชธเชพเชฐเชพเช‚เชถ เชฎเชพเชŸเซ‡เชจเซเช‚ เช•เชพเชฐเซเชฏ เชฆเชฐเซ‡เช• เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เช•เชพเชฐเซเชฏเชจเซ‡ เช•เซ‹เชชเซ€-เชชเซ‡เชธเซเชŸ เช•เชฐเชตเชพ เชธเชฟเชตเชพเชฏ เช…เชจเซเชฏ เช•เซ‹เชˆ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€; เช…เชจเซเชฏ เช•เซ‹เชˆ เชฐเซ€เชค เชจเชฅเซ€:

package main

import "fmt"

func int64Sum(list []int64) (uint64) {
    var result int64 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func int32Sum(list []int32) (uint64) {
    var result int32 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func int16Sum(list []int16) (uint64) {
    var result int16 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func int8Sum(list []int8) (uint64) {
    var result int8 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func main() {

    list8  := []int8 {1, 2, 3, 4, 5}
    list16 := []int16{1, 2, 3, 4, 5}
    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(int8Sum(list8))
    fmt.Println(int16Sum(list16))
    fmt.Println(int32Sum(list32))
    fmt.Println(int64Sum(list64))
}

เช…เชจเซ‡ เช† เช‰เชฆเชพเชนเชฐเชฃ เชธเชนเซ€ เช•เชฐเซ‡เชฒ เชชเซเชฐเช•เชพเชฐเซ‹ เชฎเชพเชŸเซ‡ เชชเชฃ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เช† เช…เชญเชฟเช—เชฎ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชจ เช•เชฐเชตเชพเชจเชพ เชธเชฟเชฆเซเชงเชพเช‚เชคเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเซ‡ เช›เซ‡ (เชธเซ‚เช•เชพ), เชธเซŒเชฅเซ€ เชชเซเชฐเชธเชฟเชฆเซเชง เช…เชจเซ‡ เชธเซเชชเชทเซเชŸ เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹เชฎเชพเช‚เชจเซเช‚ เชเช•, เชœเซ‡เชจเซ‡ เช…เชตเช—เชฃเชตเซเช‚ เช•เซ‡ เชœเซ‡ เช˜เชฃเซ€ เชญเซ‚เชฒเซ‹เชจเซ‹ เชธเซเชคเซเชฐเซ‹เชค เช›เซ‡. เช—เซ‹ เช†เชตเซเช‚ เช•เซ‡เชฎ เช•เชฐเซ‡ เช›เซ‡? เชญเชพเชทเชพเชจเซเช‚ เช† เชเช• เชญเชฏเช‚เช•เชฐ เชชเชพเชธเซเช‚ เช›เซ‡.

เชกเซ€ เชชเชฐ เชธเชฎเชพเชจ เช‰เชฆเชพเชนเชฐเชฃ:

import std.stdio;
import std.algorithm;

void main(string[] args)
{
    [1, 2, 3, 4, 5].reduce!((a, b) => a + b).writeln;
}

เชธเชฐเชณ, เชญเชตเซเชฏ เช…เชจเซ‡ เชธเซ€เชงเชพ เชฎเซเชฆเซเชฆเชพ เชชเชฐ. เช…เชนเซ€เช‚ เชตเชชเชฐเชพเชฏเซ‡เชฒ เช•เชพเชฐเซเชฏ เช›เซ‡ reduce เชจเชฎเซ‚เชจเชพ เชชเซเชฐเช•เชพเชฐ เช…เชจเซ‡ เช†เช—เชพเชนเซ€ เชฎเชพเชŸเซ‡. เชนเชพ, เช—เซ‹ เชตเชฐเซเชเชจ เช•เชฐเชคเชพเช‚ เช† เชซเชฐเซ€เชฅเซ€ เชตเชงเซ เชœเชŸเชฟเชฒ เช›เซ‡, เชชเชฐเช‚เชคเซ เชธเซเชฎเชพเชฐเซเชŸ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชฎเชพเชŸเซ‡ เชธเชฎเชœเชตเซเช‚ เชเชŸเชฒเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เชจเชฅเซ€. เช•เชฏเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชœเชพเชณเชตเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช…เชจเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡?

เชธเชฐเชณ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชธเชฟเชธเซเชŸเชฎ เชฌเชพเชฏเชชเชพเชธ

เชนเซเช‚ เช•เชฒเซเชชเชจเชพ เช•เชฐเซเช‚ เช›เซเช‚ เช•เซ‡ เช—เซ‹ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เช† เชตเชพเช‚เชšเซ€เชจเซ‡ เชฎเซ‹เช‚ เชชเชฐ เชซเซ€เชฃ เช†เชตเชถเซ‡ เช…เชจเซ‡ เชšเซ€เชธเซ‹ เชชเชพเชกเชถเซ‡, "เชคเชฎเซ‡ เช–เซ‹เชŸเซเช‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‹!" เช เซ€เช• เช›เซ‡, เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏ เช…เชจเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชฌเซ€เชœเซ€ เชฐเซ€เชค เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชŸเชพเช‡เชช เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชคเซ‹เชกเซ‡ เช›เซ‡!

เชธเชฎเชธเซเชฏเชพเชจเซ€ เช†เชธเชชเชพเชธ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‚เชฐเซเช– เชญเชพเชทเชพ เชซเชฟเช•เซเชธเชจเชพ เช† เช‰เชฆเชพเชนเชฐเชฃ เชชเชฐ เชเช• เชจเชœเชฐ เชจเชพเช–เซ‹:

package main

import "fmt"
import "reflect"

func Reduce(in interface{}, memo interface{}, fn func(interface{}, interface{}) interface{}) interface{} {
    val := reflect.ValueOf(in)

    for i := 0; i < val.Len(); i++ {
        memo = fn(val.Index(i).Interface(), memo)
    }

    return memo
}

func main() {

    list := []int{1, 2, 3, 4, 5}

    result := Reduce(list, 0, func(val interface{}, memo interface{}) interface{} {
        return memo.(int) + val.(int)
    })

    fmt.Println(result)
}

เช† เช…เชฎเชฒเซ€เช•เชฐเชฃ Reduce เชฒเซ‡เช–เชฎเชพเช‚เชฅเซ€ เช‰เชงเชพเชฐ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ Go เชฎเชพเช‚ เชฐเซ‚เชขเชฟเชชเซเชฐเชฏเซ‹เช—เชฟเช• เชธเชพเชฎเชพเชจเซเชฏ (เช†เชถเชฐเซ‡: เชนเซเช‚ เช…เชจเซเชตเชพเชฆ เชถเซ‹เชงเซ€ เชถเช•เซเชฏเซ‹ เชจเชฅเซ€, เชœเซ‹ เชคเชฎเซ‡ เช†เชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‹ เชคเซ‹ เชฎเชจเซ‡ เช†เชจเช‚เชฆ เชฅเชถเซ‡). เชธเชพเชฐเซเช‚, เชœเซ‹ เชคเซ‡ เชฐเซ‚เชขเชฟเชชเซเชฐเชฏเซ‹เช—เชพเชคเซเชฎเช• เช›เซ‡, เชคเซ‹ เชฎเชจเซ‡ เชฌเชฟเชจ-เชฐเซ‚เชขเชฟเชชเซเชฐเชฏเซ‹เช—เชฟเช• เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‹เชตเชพเชจเซเช‚ เชงเชฟเช•เซเช•เชพเชฐ เช›เซ‡. เช‰เชชเชฏเซ‹เช— interface{} - เชเช• เชชเซเชฐเชนเชธเชจ, เช…เชจเซ‡ เชญเชพเชทเชพเชฎเชพเช‚ เชคเซ‡ เชซเช•เซเชค เชŸเชพเช‡เชชเชฟเช‚เช—เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เช† เชเช• เช–เชพเชฒเซ€ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเซ‹ เชคเซ‡เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡, เชฆเชฐเซ‡เช•เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซเชตเชคเช‚เชคเซเชฐเชคเชพ เช†เชชเซ‡ เช›เซ‡. เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—เชจเซ€ เช† เชถเซˆเชฒเซ€ เชญเชฏเช‚เช•เชฐ เชจเซ€เชš เช›เซ‡, เช…เชจเซ‡ เชคเซ‡ เชฌเชงเซ เชœ เชจเชฅเซ€. เช†เชจเชพ เชœเซ‡เชตเชพ เชเช•เซเชฐเซ‹เชฌเซ‡เชŸเชฟเช• เชชเชฐเชพเช•เซเชฐเชฎ เชฎเชพเชŸเซ‡ เชฐเชจเชŸเชพเช‡เชฎ เชฐเชฟเชซเซเชฒเซ‡เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชฐเซ‹เชฌ เชชเชพเชˆเช•เชจเซ‡ เชชเชฃ เช†เชจเซ‹ เชฆเซเชฐเซเชชเชฏเซ‹เช— เช•เชฐเชจเชพเชฐ เชตเซเชฏเช•เซเชคเชฟเช“ เชชเชธเช‚เชฆ เชจเชฅเซ€, เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡เชฃเซ‡ เชคเซ‡เชจเชพ เชเช• เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡.

เช† เชเช• เชถเช•เซเชคเชฟเชถเชพเชณเซ€ เชธเชพเชงเชจ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเชพเชตเชงเชพเชจเซ€ เชธเชพเชฅเซ‡ เชฅเชตเซ‹ เชœเซ‹เชˆเช. เชธเช–เชค เช†เชตเชถเซเชฏเช•เชคเชพ เชธเชฟเชตเชพเชฏ เชคเซ‡เชจเซ‡ เชŸเชพเชณเชตเซเช‚ เชœเซ‹เชˆเช.

เชนเซเช‚ เช† เชจเซ‹เชจเชธเซ‡เชจเซเชธเชจเซ‡ เชฌเชฆเชฒเซ‡ เชกเซ€ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸเซเชธ เชฒเชˆเชถ. เชเชตเซเช‚ เช•เซ‹เชˆ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชนเซ€ เชถเช•เซ‡ interface{} เชตเชงเซ เชตเชพเช‚เชšเชตเชพ เชฏเซ‹เช—เซเชฏ เช…เชฅเชตเชพ เชคเซ‹ เชŸเชพเช‡เชช เชธเซเชฐเช•เซเชทเชฟเชค?

เช…เชตเชฒเช‚เชฌเชจ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจเชจเซ€ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“

เช—เซ‹เชฎเชพเช‚ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เชชเซเชฐเชฆเชพเชคเชพเช“เชจเซ€ เชŸเซ‹เชš เชชเชฐ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชกเชฟเชชเซ‡เชจเซเชกเชจเซเชธเซ€ เชธเชฟเชธเซเชŸเชฎ เช›เซ‡ เชตเซ€เชธเซ€เชเชธ. เช—เซ‹ เชธเชพเชฅเซ‡ เช†เชตเชคเชพ เชธเชพเชงเชจเซ‹ เช† เชธเซ‡เชตเชพเช“ เชตเชฟเชถเซ‡ เชœเชพเชฃเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชก เชกเชพเช‰เชจเชฒเซ‹เชก, เชฌเชฟเชฒเซเชก เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช† เชฎเชนเชพเชจ เช›เซ‡, เชคเซเชฏเชพเช‚ เช†เชตเซƒเชคเซเชคเชฟ เชธเชพเชฅเซ‡ เชเช• เชฎเซ‹เชŸเซ€ เช–เชพเชฎเซ€ เช›เซ‡! เชนเชพ, เช เชธเชพเชšเซเช‚ เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ เช—เซ‹ เชŸเซ‚เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช—เซ€เชฅเชฌ เช…เชฅเชตเชพ เชฌเซ€เชŸเชฌเช•เซ‡เชŸ เชœเซ‡เชตเซ€ เชธเซ‡เชตเชพเช“เชฎเชพเช‚เชฅเซ€ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเชพ เชญเซ‹เช—เซ‡ เชธเชฐเชณเชคเชพ. เชนเซเช‚ เช†เชตเชพ เชจเชฟเชฐเซเชฃเชฏเชจเซ‹ เชคเชฐเซเช• เชธเชฎเชœเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€.

เช† เชธเชฎเชธเซเชฏเชพเชจเชพ เช‰เช•เซ‡เชฒ เชตเชฟเชถเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เชชเซ‚เช›เซเชฏเชพ เชชเช›เซ€, เช—เซ‹ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชŸเซ€เชฎ เชฌเชจเชพเชตเซ€ เชซเซ‹เชฐเชฎ เชฅเซเชฐเซ‡เชก, เชœเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เช† เชฎเซเชฆเซเชฆเชพเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐ เชชเชพเชกเชถเซ‡. เชคเซ‡เชฎเชจเซ€ เชญเชฒเชพเชฎเชฃ เช เชนเชคเซ€ เช•เซ‡ เชเช• เชฆเชฟเชตเชธ เชคเชฎเชพเชฐเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชธเชฎเช—เซเชฐ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ "เชœเซ‡เชฎ เช›เซ‡ เชคเซ‡เชฎ" เช›เซ‹เชกเซ€ เชฆเซ‹. เชคเซ‡เช“ เชถเซเช‚ เชตเชฟเชšเชพเชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡? เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชฆเซเชญเซเชค เชŸเซ‡เช—เชฟเช‚เช— เช…เชจเซ‡ เชตเชฐเซเชเชจ เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เช…เชฆเซเชญเซเชค เชตเชฐเซเชเชจ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชธเชฟเชธเซเชŸเชฎเซเชธ เช›เซ‡ เชœเซ‡เชจเซ‡ Go เชธเชฐเซเชœเช•เซ‹ เช…เชตเช—เชฃเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชจเซ€ เช•เซ‰เชชเชฟ เช•เชฐเซ‡ เช›เซ‡.

เช•เซเชเซ€ เชคเชฐเชซเชฅเซ€ เชธเชพเช‚เชธเซเช•เซƒเชคเชฟเช• เชธเชพเชฎเชพเชจ

เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช—เซ‹ เชเชตเชพ เชฒเซ‹เช•เซ‹ เชฆเซเชตเชพเชฐเชพ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชœเซ‡เชฎเชฃเซ‡ เช†เช–เซ€ เชœเซ€เช‚เชฆเช—เซ€ C เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ เชœเซ‡เช“ เช•เช‚เชˆเช• เชจเชตเซเช‚ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจ เชนเชคเชพ. เชตเชงเชพเชฐเชพเชจเชพ เชตเซเชนเซ€เชฒเซเชธ เชธเชพเชฅเซ‡ เชญเชพเชทเชพเชจเซ‡ C เชคเชฐเซ€เช•เซ‡ เชตเชฐเซเชฃเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡(เชฎเซ‚เชณ: เชคเชพเชฒเซ€เชฎ เชตเซเชนเซ€เชฒเซเชธ). เชคเซ‡เชฎเชพเช‚ เช•เซ‹เชˆ เชจเชตเชพ เชตเชฟเชšเชพเชฐเซ‹ เชจเชฅเซ€, เชธเชฎเชพเช‚เชคเชฐเชคเชพเชจเชพ เชธเชฎเชฐเซเชฅเชจ เชธเชฟเชตเชพเชฏ (เชœเซ‡, เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เช…เชฆเซเชญเซเชค เช›เซ‡) เช…เชจเซ‡ เช† เชถเชฐเชฎเชœเชจเช• เช›เซ‡. เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชญเชพเช—เซเชฏเซ‡ เชœ เช‰เชชเชฏเซ‹เช—เซ€, เชฒเช‚เช—เชกเซ€ เชญเชพเชทเชพเชฎเชพเช‚ เช‰เชคเซเชคเชฎ เชธเชฎเชพเชจเชคเชพ เช›เซ‡.

เชฌเซ€เชœเซ€ เชธเชฐเซเชœเชพเชคเซ€ เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เช—เซ‹ เชเช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช—เชค เชญเชพเชทเชพ เช›เซ‡ (เชœเซ‡เชฎ เช•เซ‡ เชธเซ€เชจเซ€ เชธเชพเชฏเชฒเชจเซเชŸ เชนเซ‹เชฐเชฐ). เชคเชฎเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช—เชค เชถเซˆเชฒเซ€เชฎเชพเช‚ เช•เซ‹เชก เชฒเช–เชตเชพเชจเซเช‚ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‹ เช›เซ‹ เชœเซ‡ เชชเซเชฐเชพเชšเซ€เชจ เช…เชจเซ‡ เชœเซ‚เชจเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡. เชนเซเช‚ เชœเชพเชฃเซเช‚ เช›เซเช‚ เช•เซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เช“เชฐเชฟเชเชจเซเชŸเซ‡เชก เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เช เชธเชฟเชฒเซเชตเชฐ เชฌเซเชฒเซ‡เชŸ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชตเชฟเช—เชคเซ‹เชจเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹เชฎเชพเช‚ เช…เชฎเซ‚เชฐเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชจเซ‡ เชเชจเซเช•เซ‡เชชเซเชธเซเชฏเซเชฒเซ‡เชถเชจ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชฌเชจเชตเซเช‚ เชคเซ‡ เชธเชฐเชธ เชฐเชนเซ‡เชถเซ‡.

เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชซเชพเชฏเชฆเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณเชคเชพ

เช—เซ‹เชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช…เชจเซ‡ เชคเซ‡ เชคเซ‡ เชฒเช•เซเชทเซเชฏเชฎเชพเช‚ เชธเชซเชณ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เชจเชฌเชณเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชฎเชพเชŸเซ‡ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชคเชฐเซ€เช•เซ‡ เชœเซ‚เชจเซ€ เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡. เชคเซ‡ เชธเชฐเชณ เชตเชธเซเชคเซเช“ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เชธเชพเชงเชจเซ‹ เชธเชพเชฅเซ‡ เชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡.

เชคเซ‡ เชธเซเชฎเชพเชฐเซเชŸ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชฎเชพเชŸเซ‡ เช…เชคเซเชฏเช‚เชค เชตเชฐเซเชฌเซ‹เช, เช…เชชเซเชฐเชญเชพเชตเซ€ เช…เชจเซ‡ เช–เชฐเชพเชฌ เช›เซ‡.

ะกะฟะฐัะธะฑะพ เชฎเซ‡เชฐเซเชธเชฟเชจเชตเชพเชฒเซเชก เชธเช‚เชชเชพเชฆเชจเซ‹ เชฎเชพเชŸเซ‡

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹