ืืื ืื ืืขืฆืืข ืืืฉืื ืืื ืืขืืืืื ื Go ืคึฟืึทืจ ืืืคึผืืึทืืึทื ืฅ.
ืืืืืื ื ืคึฟืึทืจ ืฉืืืึทื ืคึผืจืึธืืืจืึทืืขืจื?
ืืืื ืืื ืืืืขืจ ืืจืื ื ืฆื ืืขืจื ืขื, ืึทืืื ืืจืื ื ืึทื ืื ืืงืืื ืืขื ืืืขื ืืืจ ืืืื ืึธืืื ื, ื ืึธื ืืืึธืก ืืื ืงืขื ืฉืืื ืงืึธื ืคึผืจืึธืืืงืืืื. ืืขืจ ืืื ืืื ืืขืืืืื ื ืฆื ืืขืจื ืขื ืืืื ืืื ืืขืจืืคื
Google ืงืืืืื ืึทื ืื ืคึผืึทืฉืืขืก ืคืื Go ืืื ืืืื ืกืขืืื ื ืคืื ื ืืื ืื ืฉืคึผืจืึทื ืืื ืืืืืื ื ืคึฟืึทืจ ืืึทืงืกืืืื ืคึผืจืึธืืืึทืงืืืืืืื ืืื ืืจืืืก ืืืื, ืึธืืขืจ ืืื ืฆืืืืืคื ืขืก. ืขืก ืืขื ืขื ืคึฟืขืึดืงืืืื ืืืึธืก ืืขื ืขื ืึธืืขืจ ืคืขืื ืืืง ืึธืืขืจ ืึธืืืืขืจืื ืืืืืืื. ืืื ืึทืืข ืืืืึทื ืคืื ืึท ืืึทื ืื ืคืื ืฆืืืจืื ืืื ืืขืืืขืืึธืคึผืขืจืก, ืืื ืื ืืึทืฉืึธืจืข ืึทื ืืื ืืขื ืขื ื ืืฉื ืืืืืืช ืฆื ืืึธื ืขืคึผืขืก ืจืขืื. ืืขืจ ืคืึทืจืืึทื ื ืคึฟืึทืจ ืคึผืึทืฉืืขืก ืืื ืืขืืืขื ืึท ืืึทืืืืกืืืื ืืง ืืึทืฉืืืก ืคืื ืื ืืืืืื ืขืจื ืคืื ืื ืฉืคึผืจืึทื, ืืื ืืื ืกืืจ ืฆื ืืึธืจ ืคึฟืึทืจืฉืืืื ืืืึธืก ืขืก ืืื ืืืจืฃ, ืืืจ ืืืื ืคึฟืึทืจืฉืืืื ืื ืืึธืืืึทืืืืืฉืึทื ืคืื ืื ืืขืืืขืืึธืคึผืขืจืก ืืื ืืืึธืก ืืื ืืขื ืขื ืืจืืื ื ืฆื ืืขืจืืจืืืื ืืื Go.
ืึทืืื ืคืืจืืืืก ืืื ืขืก ืืขืืืื ืึทืืื ืคึผืฉืื? ืืึธ ืืขื ืขื ืึท ืคึผืึธืจ ืคืื ืงืืืึธืืขืก
ืืขืจ ืฉืืืกื ืคืื ื ืืึธ ืืื ืึทื ืืื ืืืขืจ ืคึผืจืึธืืืจืึทืืขืจื (ืึทืคึผืคึผืจืึธืงืก.:
ืืืืืขืจืก ) ืืขื ืขื ื ืืฉื ืจืืกืขืจืืฉืขืจื. ืืื ืืขื ืขื, ืืื ืึท ืืขืจืฉื, ืืึทื ืฅ ืืื ื, ืงืืืขื ืฆื ืืื ืื ื ืึธื ืืขืจื ืขื, ืืึธืืขืจ ืืื ืืขืืขืจื ื ืืืฉืึทืืืึท, ืึธืืขืจ C/C++, ืึธืืขืจ ืคึผืืืืึธื. ืืื ืงืขื ืขื ื ืืฉื ืคึฟืึทืจืฉืืืื ืึท ืืจืืืก ืฉืคึผืจืึทื, ืึธืืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืืืจ ืืืขืื ืืื ืฆื ืืึทืื ืืื ืืืืืืืืืจื. ืืขืจืคึฟืึทืจ ืืึธื ืืืืขืจ ืฉืคึผืจืึทื ืืืื ืืจืื ื ืคึฟืึทืจ ืืื ืฆื ืคึฟืึทืจืฉืืืื ืืื ืืขืจื ืขื.
ืขืจ ืืึธื ืืืื ืืึทืงืึทื ื, ืืขืขืจืขื ืขื ืืขื ืฆื ืกื. ืคึผืจืึธืืจืึทืืืขืจืก ืืจืืขืื ืืื Google ืึธื ืืืืื ืืืืขืจ ืงืึทืจืืขืจืข ืคืจื ืืื ืืขื ืขื ืืขืจืกืื ืก ืืึทืงืึทื ื ืืื ืคึผืจืึทืกืืืืฉืขืจืึทื ืฉืคึผืจืึทืื, ืกืคึผืขืฆืืขื ืื C ืืฉืคึผืื. ืื ืคืึธืืขืจืื ื ืคึฟืึทืจ ืฉื ืขื ืคึผืจืึธืืืึทืงืืืืืึทืื ืืื ืึท ื ืืึทืข ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื ืืืื ืึทื ืื ืฉืคึผืจืึทื ืืึธื ื ืืฉื ืืืื ืฆื ืจืึทืืืงืึทื.
ืืืืก? ืึทืืื ืจืึธื ืคึผืืงืข ืืื ืืืืกืืงืื ืืขืืืื ืึทื ืื ืืขืืืขืืึธืคึผืขืจืก ืืื Google ืืขื ืขื ื ืืฉื ืึทืืื ืืื, ืึทื ืก ืืืึธืก ืืื ืืืฉืืคื ืึท ืฉืคึผืจืึทื ืคึฟืึทืจ ืืืืึธืฅ (ืึทืคึผืคึผืจืึธืงืก.: ืืืืืขื ืึทืจืึธืคึผ) ืึทืืื ืึทื ืืื ืืขื ืขื ืืืืืืช ืฆื ืืึธื ืขืคึผืขืก. ืืืึธืก ืคึฟืึทืจ ืึท ืขืจืึทืืึทื ื ืงืืง ืืืืฃ ืืืื ืืืืืขื ืข ืืืจืื? ืืื ืืึธืื ืฉืืขื ืืืง ืืขืืืืืื ืึทื Google ืืขืืืขืืึธืคึผืขืจืก ืืขื ืขื ืืึทื ืืคึผืืงื ืคืื ืื ืืขืืกืืข ืืื ืืขืกืืขืจ ืืืืฃ ืืขืจ ืขืจื. ืึทืืืึทืืข ืงืขื ืขื ืืื ืฉืขืคึผื ืขืคึผืขืก ืืขืจ ืฉืืืขืจ?
ืึทืจืืึทืคืึทืงืฅ ืคืื ืืืขืจืืง ืคึผืึทืฉืืขืก
ืืืื ืคึผืฉืื ืืื ืึท ืืืขืจื ืฆืื ืืื ืงืืื ืคึผืืึทื, ืืื ืืจืืื ื ืฆื ืืึทืื ืขืคึผืขืก ืคึผืฉืื ืืื ืฉืืืขืจ. ืึธืืขืจ, ืืืขื ืืจืืื ื ืฆื ืกืึธืืืืข (ืึธืืขืจ ืืคืืื ืืืืกืืจืืงื) ืงืึธืืคึผืืขืงืก ืคึผืจืึธืืืขืืก, ืืื ืึท ืงืึธืืคึผืืขืงืก ืืขืฆืืึทื ืืื ืืืจืฃ. ืงืึทืืคึผืืขืงืกืืื ืืื ืื ืืจืึทืงืึทืกื ืืขื ืขื ื ืืฉื ืื ืืขืกืืขืจ ืคึฟืขืึดืงืืืื ืคืื ืึท ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื, ืึธืืขืจ ืขืก ืืื ืึท ืืืื ืขืจื ืืื ืืืึธืก ืื ืฉืคึผืจืึทื ืงืขื ืขื ืืึทืื ืขืืขืืึทื ื ืึทืืกืืจืึทืงืฆืืขืก ืืืึธืก ืืขื ืขื ืืจืื ื ืฆื ืคึฟืึทืจืฉืืืื ืืื ื ืืฆื.
ื ืื ืืืืขืจ ืืงืกืคึผืจืขืกืืื
ืจืขืื ืฆื ืืขืจ ืคืึทืจืืึทื ื ืคึฟืึทืจ ืคึผืึทืฉืืขืก, Go ืคืขืื ืงืึทื ืกืืจืึทืงืฉืึทื ื ืืืึธืก ืืขื ืขื ืืืืขืจืงื ืืื ืขืคึผืขืก ื ืึทืืืจืืขื ืืื ืื ืืขืจืข ืฉืคึผืจืึทืื. ืืึธืก ืงืขื ืืืกืงืืืขื ืืื ืึท ืืืืข ืืขืืึทื ืง ืืื ืขืจืฉืืขืจ, ืึธืืขืจ ืืื ืคืืจ, ืืึธืก ืจืขืืืืืึทื ืืื ืืืขืจืืึธืืก ืงืึธื. ืื ืกืืื ืคึฟืึทืจ ืืขื ืืึธื ืืืื ืงืืึธืจ ืืื ืืขืจ ืืึธื - ืขืก ืืึทืจืฃ ืืืื ืืจืื ื ืคึฟืึทืจ ืืขืืืขืืึธืคึผืขืจืก ืฆื ืืืืขื ืขื ืื ืงืึธื ืคืื ืื ืืขืจืข ืืขื ืืฉื, ืึธืืขืจ ืืื ืคืึทืงื ืื ืกืืืคึผืืึทืคืืงืืืฉืึทื ื ืฉืึทืื ืืืืื ืื ืืืืขื ืขื. ืขืก ืืขื ืขื ืงืืื ืึทืืจืืืืืืืฉืึทื ื ืืื Go: ืึธืืขืจ ืึท ืคึผืืึทืฅ ืึธืืขืจ ืืึธืจื ืืฉื.
ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืึท ืงืึทื ืกืึธืื ื ืืฆื ืืืึธืก ืืืืขื ื ืกืืืื ืึธืืขืจ ืึท ืืขืงืข ืคึฟืื ืืึทืคึฟืขืื ืฉืืจื ืึทืจืืืืขื ืื ืืืึธืื ืงืืงื ืืื ืืึธืก:
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)
}
ืืึธืืฉ ืืขืจ ืงืึธื ืืืื ืคืจืืืื ืฆื ืืืื ืืื ืึทืืืขืืืื ืืื ืืขืืืขื, ืื ืืขืฆืืืื ืืขื ืืืขืจืืึธืืกืึทืื ืคืื Go ืงืืื ืืื ืื ืืืขื, ืืื ืืื ืึท ืจืขืืืืืึทื, ืกืึทืืืืื ื ืึท ืคึผืฉืื ืคึผืจืึธืืืขื ืจืขืืืืืึทื ืืื ืึท ืืจืืืก ืกืืืข ืคืื โโืงืึธื.
ืืึธ, ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืื ืึท ืืืืืื ื ืฆื ืืขืจ ืืขืืืืงืขืจ ืคึผืจืึธืืืขื ืืื
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);
}
}
ืืื ืืืขืจ ืืื ืืืฆื ืืขืจ ืืืื ืขืืืืืง? ืืื ืืืขื ืืขืื ืืืื ืฉืืืืข ืฆื ื. ืืืื ืงืึธื ืืื ืคืื ืืขืจ ืืืื ืขืืืืืง ืืืืึทื ืขืจ ืืืฉืจืืืื ืื ืึทืงืฉืึทื ื ืืขืจ ืงืืืจ. ื ื ืืฆื ืคืื ืืขืจ ืงืึธืืคึผืืืฆืืจื ืงืึทื ืกืขืคึผืก (ืึทืคึผืคึผืจืึธืงืก.:
ืืขื ืขื ืคืื ืงืึทืคึผืืื ื
ื ืคืึธืืงืก ืคืึธืจืฉืืึธื ืคึฟืึทืจ ืืืคึผืจืืืืื ื ืืืื ืืื ืึทืืืขืืืื. ืืึธืก ืืืขื ืืืึท ืืื ืืกืืขืจ ืืขืืคื ืืืกืืืืื ืืื ืืืืืง ืงืึทืคึผืืื ื ืงืึธื ืฆื ืฉืืืฆื ืึทืืข ืืึทืื ืืืืคึผืก. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืึท ืคึฟืื ืงืฆืืข ืคึฟืึทืจ ืกืึทืืื ื ืึท ืจืฉืืื ืคืื ืื ืืึทืืืฉืขืจื ืงืขื ืขื ืืืื ืืืคึผืืึทืืขื ืึทื ืืื ืงืืื ืื ืืขืจืข ืืืขื ืืื ืืืจื ืงืึธืคึผืืข-ืคึผืึทืกืืื ื ืืืึทื ืืงืขืจืืืง ืคืื ืงืฆืืข ืคึฟืึทืจ ืืขืืขืจ ืื ืืึทืืืฉืขืจ ืืืคึผ, ืขืก ืืื ืงืืื ืื ืืขืจืข ืืืขื:
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))
}
ืืื ืืขื ืืืึทืฉืคึผืื ืืื ื ืืฉื ืืคืืื ืึทืจืืขื ืคึฟืึทืจ ืืขืืชืืขื ืืืืคึผืก. ืืขืจ ืฆืืืึทื ื ืืึธืจ ืืืืืึทืืืืฅ ืืขื ืคึผืจืื ืฆืืคึผ ืคืื ื ืืฉื ืจืืคึผืืืื ื ืืื (
ืืขืจ ืืขืืืืงืขืจ ืืืึทืฉืคึผืื ืืืืฃ D:
import std.stdio;
import std.algorithm;
void main(string[] args)
{
[1, 2, 3, 4, 5].reduce!((a, b) => a + b).writeln;
}
ืคึผืฉืื, ืขืืขืืึทื ื ืืื ืืืืึทื ืฆื ืื ืคืื ื. ืื ืคึฟืื ืงืฆืืข ืืขื ืืฆื ืืึธ ืืื reduce
ืคึฟืึทืจ ืืืกืืขืจ ืืืคึผ ืืื ืคึผืจืขืืืงืึทื. ืืึธ, ืืึธืก ืืื ืืืืืขืจ ืืขืจ ืงืึธืืคึผืืืฆืืจื ืืื ืื Go ืืืขืจืกืืข, ืึธืืขืจ ื ืืฉื ืึทืืื ืฉืืืขืจ ืคึฟืึทืจ ืงืืื ืคึผืจืึธืืืจืึทืืขืจื ืฆื ืคึฟืึทืจืฉืืืื. ืืืึธืก ืืืืฉืคึผืื ืืื ืืจืื ืืขืจ ืฆื ืืืึทื ืขื ืืื ืืจืื ืืขืจ ืฆื ืืืืขื ืขื?
ืคึผืฉืื ืืืคึผ ืกืืกืืขื ืืืืคึผืึทืก
ืืื ืืืึทืืืฉืึทื ืึทื Go-ืคึผืจืึธืืืจืึทืืขืจื ืืืึธืก ืืืืขื ืขื ืืขื ืืืขื ืืืื ืคืึธืืืื ื ืืื ืื ืืืื ืืื ืฉืจืืึทืขื, "ืืืจ ืืึธื ืืึธืก ืคืึทืืฉ!" ื ื, ืขืก ืืื ืื ืื ืืขืจ ืืืขื ืฆื ืืึทืื ืึท ืืืฉืึทื ืขืจืืง ืคืื ืงืฆืืข ืืื ืืืืคึผืก, ืึธืืขืจ ืขืก ืืึธืจ ืืจืืืงืก ืื ืืืคึผ ืกืืกืืขื!
ื ืขืืขื ืึท ืงืืง ืืื ืืขื ืืืึทืฉืคึผืื ืคืื ืึท ื ืึทืจืืฉ ืฉืคึผืจืึทื ืคืึทืจืจืืืื ืฆื ืึทืจืืขืื ืึทืจืื ืืขื ืคึผืจืึธืืืขื:
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
ืืื ืืขืืืขื ืืึทืจืึธืื ืคืื ืืขื ืึทืจืืืงื interface{}
- ืึท ืคืึทืจืก, ืืื ืืื ืืขืจ ืฉืคึผืจืึทื ืขืก ืืื ืืืจืฃ ืืืืื ืฆื ืืืืคึผืึทืก ืืืืคึผืื ื. ืืึธืก ืืื ืึท ืืืืืืง ืฆืืืื ื ืืื ืึทืืข ืืืืคึผืก ืื ืกืืจืืืขื ื ืขืก, ืึทืืึทืืื ื ืืึทื ืฅ ืคืจืืืืืื ืคึฟืึทืจ ืึทืืขืืขื. ืืขืจ ื ืืกื ืคืื ืคึผืจืึธืืจืึทืืืื ื ืืื ืฉืจืขืงืืขื ืืืขืก, ืืื ืืึธืก ืืื ื ืืฉื ืึทืืข. ืึทืงืจืึธืืึทืืืง ืคืืฅ ืืื ืื ืืึทืจืคื ืื ื ืืฆื ืคืื ืจืื ืืืืข ืึธืคึผืฉืคึผืืืืื ื. ืืคืืื ืจืึธื ืคึผืืงืข ืืื ื ืื ืืื ืืขื ืืฉื ืืืึธืก ืืืืืขื ืืขื, ืืื ืขืจ ืืขืจืืื ื ืืื ืืืื ืขืจ ืคืื ืืืื ืจืืคึผืึธืจืฅ.
ืืึธืก ืืื ืึท ืฉืืึทืจืง ืืขืฆืืึทื ืืืึธืก ืืึธื ืืืื ืืขืืืืื ื ืืื ืืืึธืจืขื ืขื. ืขืก ืืึธื ืืืื ืึทืืืืืืึทื ืกืืึทืื ืฉืืจืขื ื ื ืืืืืง.
ืืื ืืืึธืื ื ืขืืขื ื ืืขืืคึผืืึทืืขืก ืึทื ืฉืืึธื ืคืื ืืขื ืืืืื. ืืื ืงืขื ืืขื ืืืก ืืืื interface{}
ืืขืจ ืืืื ืขืืืืืง ืึธืืขืจ ืืคืืื ืืืคึผ ืืืืขืจ?
ืื ืืืึธืขืก ืคืื ืึธืคืขื ืืืงืืึทื ืคืึทืจืืืึทืืืื ื
Go ืืื ืึท ืืขืืืื-ืืื ืืขืคึผืขื ืืขื ืกื ืกืืกืืขื ืืขืืืื ืืืืฃ ืฉืคึผืืฅ ืคืื ืคืึธืืงืก ืืึธืกืืื ื ืคึผืจืึทืืืืืืขืจื
ื ืึธื ืึทืกืงืื ื ืคึฟืจืืื ืืืขืื ืึท ืืืืืื ื ืฆื ืืขื ืคึผืจืึธืืืขื, ืื Go ืึทื ืืืืืงืืื ื ืืึทื ืฉืึทืคึฟื ืืืฉืืคื
ืงืืืืืจ ืืึทืืึทืืฉ ืคืื ืฉื
ืืื ืืืื ืืืื ืื ื, Go ืืื ืืขืืืขืืึธืคึผืขื ืืืจื ืืขื ืืฉื ืืืึธืก ืืึธืื ืืขืืืืื ื C ืึทืืข ืืืืขืจ ืืขืื ืืื ืืืจื ืื ืืืึธืก ืืึธืื ื ืืฉื ืืืขืื ืฆื ืคึผืจืืืืจื ืขืคึผืขืก ื ืืึท. ืื ืฉืคึผืจืึทื ืงืขื ืขื ืืืื ืืืกืงืจืืืื ืืื C ืืื ืขืงืกืืจืข ืืืืื (ืึธืจืื.:
ืื ืื ืืขืจ ืงืจืืงืื ื ืคึผืจืึธืืืขื ืืื ืึทื Go ืืื ืึท ืคึผืจืึทืกืืืืฉืขืจืึทื ืฉืคึผืจืึทื (ืืื ืื ืฉืืื ืืจืืื ืคืื C). ืืืจ ืขื ืืืงื ืฉืจืืืื ืงืึธื ืืื ืึท ืคึผืจืึทืกืืืืฉืขืจืึทื ื ืืกื ืืืึธืก ืคืืื ืึทืจืืฉืึทืืง ืืื ืึทืืืืืืืื. ืืื ืืืืกื ืึทื ืึทืืืืฉืขืงื ืึธืจืืขื ืืื ืคึผืจืึธืืจืึทืืืื ื ืืื ื ืืฉื ืึท ืืืืืขืจ ืงืืื, ืึธืืขืจ ืขืก ืืืึธืื ืืืื ืืจืืืก ืฆื ืงืขื ืขื ืฆื ืึทืืกืืจืึทืงื ืื ืืขืืึทืืืก ืืื ืืืืคึผืก ืืื ืฆืืฉืืขืื ืขื ืงืึทืคึผืกืืืึทืืืึธื.
ืคึผืึทืฉืืขืก ืคึฟืึทืจ ืืืื ืืืืื ื ืืฅ
Go ืืื ืืืืืื ื ืฆื ืืืื ืคึผืฉืื ืืื ืขืก ืืื ืืขืจืึธืื ืืื ืืขื ืฆืื. ืขืก ืืื ืืขืืืขื ืืขืฉืจืืื ืคึฟืึทืจ ืฉืืืึทื ืคึผืจืึธืืืจืึทืืขืจื, ื ืืฆื ืึทื ืึทืื ืฉืคึผืจืึทื ืืื ืึท ืืืกืืขืจ. ืขืก ืงืืื ืืึทื ืฅ ืืื ืคึผืฉืื ืืืฉืืจืื ืฆื ืืึธื ืคึผืฉืื ืืื ืื. ืขืก ืืื ืืจืื ื ืฆื ืืืืขื ืขื ืืื ืืจืื ื ืฆื ื ืืฆื.
ืขืก ืืื ืืึธืจ ืืืขืจืืึธืืก, ืึทื ืืืคึผืจืขืกืกืืื ืืื ืฉืืขืื ืคึฟืึทืจ ืงืืื ืคึผืจืึธืืืจืึทืืขืจื.
ืืึทื ืง
ืืงืืจ: www.habr.com