рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЛрдВ рд╕реЗ рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдХрдордЬреЛрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛?
рдЧреЛ рд╕реАрдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЗрддрдирд╛ рдЖрд╕рд╛рди рдХрд┐ рдкрд░рд┐рдЪрдп рджреЗрдиреЗ рдореЗрдВ рдореБрдЭреЗ рдПрдХ рд╢рд╛рдо рд▓рдЧ рдЧрдИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрдХ рд░реВрдк рд╕реЗ рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдЧреЛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд┐рд╕ рдкреБрд╕реНрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЙрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
Google рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдЧреЛ рдХреА рд╕рд░рд▓рддрд╛ рдЙрд╕рдХрд╛ рд╡рд┐рдХреНрд░рдп рдмрд┐рдВрджреБ рд╣реИ рдФрд░ рднрд╛рд╖рд╛ рдмрдбрд╝реА рдЯреАрдореЛрдВ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИред рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдпрд╛ рддреЛ рдЧрд╛рдпрдм рд╣реИрдВ рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╣реИрдВред рдФрд░ рдпрд╣ рд╕рдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдХрд┐ рд╡реЗ рдХреБрдЫ рднреА рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред рд╕рд░рд▓рддрд╛ рдХреА рдпрд╣ рдЗрдЪреНрдЫрд╛ рднрд╛рд╖рд╛ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдЪреЗрдд рдирд┐рд░реНрдгрдп рдерд╛, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереА, рд╣рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡реЗ рдЧреЛ рдореЗрдВ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдереЗред
рддреЛ рдЗрд╕реЗ рдЗрддрдирд╛ рд╕рд░рд▓ рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛? рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрджреНрдзрд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ
рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ (рд▓рдЧрднрдЧред:
Googlers рдХреЗ ) рд╢реЛрдзрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд╛рдлреА рдпреБрд╡рд╛ рд╣реИрдВ, рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд╛рд╡рд╛, рдпрд╛ рд╕реА/рд╕реА++, рдпрд╛ рдкрд╛рдпрдерди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рд╣реИред рд╡реЗ рдХреЛрдИ рдмрдврд╝рд┐рдпрд╛ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЕрдЪреНрдЫрд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдПрдВред рдЗрд╕рд▓рд┐рдП рдЙрдирдХреА рднрд╛рд╖рд╛ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдордЭрдиреЗ рдФрд░ рд╕реАрдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЙрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕реА рдХреЗ рд╕рдорд╛рди рдмреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред Google рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдирд╛ рдХрд░рд┐рдпрд░ рдЬрд▓реНрджреА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛рдУрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реА рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдирдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рддреНрд╡рд░рд┐рдд рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛? рддреЛ рд░реЙрдм рдкрд╛рдЗрдХ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ Google рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдЙрддрдиреЗ рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕реАрд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдмреЗрд╡рдХреВрдлреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдмрдирд╛рдИ рд╣реИ (рд▓рдЧрднрдЧред: рдЧреВрдВрдЧрд╛ рд╣реЛ рдЧрдпрд╛) рддрд╛рдХрд┐ рд╡реЗ рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВред рдЕрдкрдиреЗ рд╣реА рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реА рдЕрд╣рдВрдХрд╛рд░ рднрд░реА рдирдЬрд░ рд╕реЗ рджреЗрдЦрдирд╛? рдореЗрд░рд╛ рд╣рдореЗрд╢рд╛ рд╕реЗ рдорд╛рдирдирд╛ тАЛтАЛрд░рд╣рд╛ рд╣реИ рдХрд┐ Google рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рдФрд░ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдЪреБрдиреЗ рдЧрдП рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рдХрдард┐рди рдХрд╛рд░реНрдп рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рджрдЧреА рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ
рдХрд┐рд╕реА рднреА рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рд╕рд░рд▓ рд╣реЛрдирд╛ рдПрдХ рдпреЛрдЧреНрдп рд▓рдХреНрд╖реНрдп рд╣реИ, рдФрд░ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ (рдпрд╛ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ) рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдХрднреА-рдХрднреА рдПрдХ рдЬрдЯрд┐рд▓ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдкреЗрдЪреАрджрдЧреА рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмреАрдЪ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рднрд╛рд╖рд╛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдЕрдореВрд░реНрддрддрд╛рдПрдВ рдмрдирд╛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВред
рдмрд╣реБрдд рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдирд╣реАрдВ
рд╕рд╛рджрдЧреА рдХреЗ рдкреНрд░рддрд┐ рдЕрдкрдиреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдЧреЛ рдореЗрдВ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд░реНрдмреЛрдЬрд╝ рдХреЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреЗ рд╕рд░рд▓реАрдХрд░рдг рдХреЗрд╡рд▓ рдкрдардиреАрдпрддрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддреЗ рд╣реИрдВред рдЧреЛ рдореЗрдВ рдХреЛрдИ рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рд╣реИрдВ: рдпрд╛ рддреЛ рдмрд╣реБрдд рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рд╕реЗ 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)
}
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдХреЛрдб рдпрдерд╛рд╕рдВрднрд╡ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреЛ рдХреА рдордЬрдмреВрд░ рд╢рдмреНрджрд╛рдбрдВрдмрд░рддрд╛ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЖ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ
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))
}
рдФрд░ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрдж рдХреЛ рди рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ (
рдбреА рдкрд░ рд╡рд╣реА рдЙрджрд╛рд╣рд░рдг:
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
рд▓реЗрдЦ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ interface{}
- рдПрдХ рддрдорд╛рд╢рд╛, рдФрд░ рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИред рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рднреА рдХреЛ рдкреВрд░реНрдг рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдорд┐рд▓рддреА рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдпрд╣ рд╢реИрд▓реА рдмреЗрд╣рдж рдмрджрд╕реВрд░рдд рд╣реИ, рдФрд░ рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдХрд▓рд╛рдмрд╛рдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реЙрдм рдкрд╛рдЗрдХ рдХреЛ рднреА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреА рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рддрдХ рдЕрддреНрдпрдВрдд рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛ, рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдЗрд╕ рдмрдХрд╡рд╛рд╕ рдХреЗ рдмрдЬрд╛рдп рдбреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓реВрдВрдЧрд╛ред рдРрд╕рд╛ рдХреЛрдИ рдХреИрд╕реЗ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ interface{}
рдЕрдзрд┐рдХ рдкрдардиреАрдп рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдЯрд╛рдЗрдк?
рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рдВрдХрдЯ
рдЧреЛ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдгрд╛рд▓реА рд╣реИ
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рдмрд╛рдж, рдЧреЛ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдиреЗ рдмрдирд╛рдпрд╛
рд╢реА рд╕реЗ рд╕рд╛рдВрд╕реНрдХреГрддрд┐рдХ рд╕рд╛рдорд╛рди
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЧреЛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рдкреВрд░реЗ рдЬреАрд╡рди рдореЗрдВ рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЬреЛ рдХреБрдЫ рдирдпрд╛ рдЖрдЬрд╝рдорд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗред рднрд╛рд╖рд╛ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде C рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ(рдореВрд▓.:
рдПрдХ рдФрд░ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЧреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ рд╣реИ (рд╕реА рдХреА рдореВрдХ рдбрд░рд╛рд╡рдиреА рднрд╛рд╖рд╛ рдХреА рддрд░рд╣)ред рдЖрдк рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдкреБрд░рд╛рддрди рдФрд░ рдкреБрд░рд╛рдиреА рд▓рдЧрддреА рд╣реИред рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛрдИ рд╕рд┐рд▓реНрд╡рд░ рдмреБрд▓реЗрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рджрдЧреА
рдЧреЛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдЙрд╕ рд▓рдХреНрд╖реНрдп рдкрд░ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрдордЬреЛрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд░рд╛рдиреА рднрд╛рд╖рд╛ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдпрд╣ рдмреЗрд╣рдж рд╡рд╛рдЪрд╛рд▓, рдЕрдкреНрд░рднрд╛рд╡реА рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЦрд╝рд░рд╛рдм рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж
рд╕реНрд░реЛрдд: www.habr.com