He aha te mea he kino te Haere mo nga Kaihōtaka Unsmart

I tuhia te tuhinga hei whakautu mo te panui i mua tuhinga antipodean.

He aha te mea he kino te Haere mo nga Kaihōtaka Unsmart

I roto i nga tau e rua-nui kua pahure ake nei ka whakamahi ahau i te Haere ki te whakatinana i tetahi tūmau RADIUS motuhake me te punaha nama kua whakawhanakehia. I runga i te huarahi, kei te ako ahau i nga hiako o te reo ake. He tino ngawari nga kaupapa nei, a ehara i te kaupapa o tenei tuhinga, engari ko te wheako o te whakamahi i a Go ka tika etahi kupu hei tiaki. Kei te piki haere a Go hei reo auraki mo te waehere tino nui, ka taea te tauine. Na Google te reo i hanga, i reira e kaha ana te whakamahi. Ko te rarangi o raro, he pono taku whakaaro he kino te hoahoa o te reo Haere mo nga kaiwhakaputa UNintelligent.

I hangaia mo nga kaitakataka ngoikore?

Ko te hunga ngoikore e korero ana mo nga raruraru. Ko nga korero kaha mo nga whakaaro me nga moemoea...

He tino ngawari te ako ki te haere, he ngawari ka taea e koe te panui i te waehere me te kore rawa he whakangungu. Ka whakamahia tenei ahuatanga o te reo i roto i te maha o nga kamupene o te ao ka panuihia te waehere me nga tohunga kore-matua (kaiwhakahaere, kaihoko, me etahi atu). He tino watea tenei mo nga tikanga penei i te Whakawhanaketanga Hoahoa.
Ahakoa ko nga kaiwhakatakoto kaupapa hou ka timata ki te whakaputa i te waehere tino tika i muri i te wiki e rua ranei. Ko te pukapuka i akohia e au ko “Go Programming” (na Mark Summerfield). He tino pai te pukapuka, e pa ana ki nga ahuatanga maha o te reo. I muri mai i nga reo uaua penei i te Java, PHP, ko te kore o te makutu kei te whakahauora. Engari i muri mai ranei, he maha nga kaiwhakatakoto kaupapa iti e whai whakaaro ana ki te whakamahi tikanga tawhito ki tetahi mara hou. He tino tika tenei?

Na Rob Pike (te tino tohunga whakaaro o te reo) i hanga te reo Haere hei reo ahumahi e ngawari ana te mohio me te whai hua ki te whakamahi. Kua hoahoatia te reo mo te hua tino nui i roto i nga roopu nui, a, kaore he whakaaro mo tena. He maha nga kaiwhakatakoto kaupapa hou e amuamu ana he maha nga ahuatanga kei te ngaro. Ko tenei hiahia mo te ngawari he whakatau mohio na nga kaihanga o te reo, a kia tino marama ai he aha i hiahiatia ai, me mohio tatou ki te hihiri o nga kaiwhakawhanake me nga mea e ngana ana ki te whakatutuki i roto i a Go.

Na he aha te take i tino ngawari ai? Anei etahi korero e rua mai i a Rob Pike:

Ko te kaupapa matua i konei ko te mea ehara a tatou kaiwhakaputa i te hunga rangahau. He tamariki tonu ratou, ka tae mai ki a matou i muri i te ako, tera pea i ako ratou i te Java, i te C/C++ ranei, i te Python ranei. Kaore e taea e ratou te mohio ki tetahi reo nui, engari i te wa ano e hiahia ana matou ki te hanga rorohiko pai. No reira kia ngawari te mohio me te ako i te reo.

Me mohio ia, he rite tonu te korero ki a C. Ko nga kaihōtaka e mahi ana i Google ka timata i a ratou mahi moata, me te mohio ki nga reo tikanga, ina koa ko te whanau C. Ko te hiahia kia tere te hua i roto i te reo hootaka hou ko te tikanga kia kaua te reo e tino pukuriri.

Ko nga kupu whakaaro nui, ehara?

Nga Taonga Maamaa

Ko te ngawari he tikanga e tika ana mo te ataahua. Lev Tolstoy.

Ko te pupuri ngawari ko tetahi o nga tino whainga i roto i tetahi hoahoa. E mohio ana koe, ko te kaupapa tino pai ehara i te kaupapa kaore he mea hei taapiri, engari ko tetahi kaore he mea hei tango. He maha nga tangata e whakapono ana ki te whakaoti (me te whakaatu ranei) nga raru uaua, ka hiahiatia he taputapu uaua. Heoi, karekau. Me tango te reo PERL hei tauira. I whakapono nga tohunga whakaaro mo te reo me whai huarahi rerekee e toru neke atu i te iti rawa ki te kai htaka hei whakaoti rapanga kotahi. He huarahi rerekee nga whakaaro o te reo Go; i whakatau ratou ko tetahi ara, engari he huarahi tino pai, kua ranea hei whakatutuki i te whainga. He tino turanga to tenei huarahi: ko te huarahi anake he maamaa ake te ako me te uaua ki te wareware.

He maha nga manene e amuamu ana kaore he tangohanga huatau i roto i te reo. Ae, he pono tenei, engari koinei tetahi o nga tino painga o te reo. He iti rawa te makutu kei roto i te reo - no reira kaore e hiahiatia he matauranga hohonu ki te panui i te kaupapa. Mo te korero o te waehere, ehara tenei i te raru. He pai te tuhi o te kaupapa Golang e panui poutū ana, he iti te hanganga, he kore ranei. I tua atu, ko te tere o te panui i tetahi kaupapa he raupapa o te nui ake i te tere o te tuhi. Ki te whakaaro koe he whakahōputu ōrite te waehere katoa (kua oti te whakamahi i te whakahau gofmt i hangaia), karekau he raru te panui i etahi rarangi taapiri.

Ehara i te tino whakapuaki

Kare te toi e whakaae ina herea tona herekoretanga. Ko te tika ehara tana kawenga.

Na te hiahia mo te ngawari, kaore a Go i hanga i etahi atu reo e kiia ana he mea maori e nga tangata kua waia ki a raatau. I te tuatahi he ahua whakaraerae, engari ka kite koe he maamaa te kaupapa, he maamaa ake te panui.

Hei tauira, ka penei te ahua o te taputapu papatohu e panui ana i te stdin, i tetahi konae ranei mai i nga tautohetohe raina whakahau:

package main

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

func main() {

    flag.Parse()

    scanner := newScanner(flag.Args())

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

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

    fmt.Println(text)
}

func newScanner(flags []string) *bufio.Scanner {
    if len(flags) == 0 {
        return bufio.NewScanner(os.Stdin)
    }

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

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

    return bufio.NewScanner(file)
}

Ko te otinga mo te raruraru kotahi i D, ahakoa he ahua poto ake, ehara i te mea ngawari ki te panui

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);
    }
}

Te reinga o te kape

Ka mau te tangata i te reinga i roto i a ia ano. Matini Luther.

E amuamu tonu ana nga kaimatai mo Go mo te kore o nga momo rongoa. Hei whakaoti i tenei take, ko te nuinga o ratou ka whakamahi i te kape waehere tika. Hei tauira, he mahi mo te whakarapopototanga o te rarangi tauoti, ka whakapono nga tohunga penei kare e taea te whakatinana i tetahi atu huarahi ma te kape-piri ngawari mo ia momo raraunga.

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 main() {

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

    fmt.Println(int32Sum(list32))
    fmt.Println(int64Sum(list64))
}

He rawaka nga tikanga o te reo ki te whakatinana i aua hanga. Hei tauira, ka pai te whakatakotoranga whanui.

package main

import "fmt"

func Eval32(list []int32, fn func(a, b int32)int32) int32 {
    var res int32
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int32Add(a, b int32) int32 {
    return a + b
}

func int32Sub(a, b int32) int32 {
    return a + b
}

func Eval64(list []int64, fn func(a, b int64)int64) int64 {
    var res int64
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int64Add(a, b int64) int64 {
    return a + b
}

func int64Sub(a, b int64) int64 {
    return a - b
}

func main() {

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

    fmt.Println(Eval32(list32, int32Add))
    fmt.Println(Eval64(list64, int64Add))
    fmt.Println(Eval64(list64, int64Sub))
}

A, ahakoa he ahua roa ake to taatau waehere i te keehi o mua, kua whanui noa atu. No reira, e kore e uaua ki a tatou te whakatinana i nga mahi tatau katoa.

He maha ka kii he ahua poto ake te ahua o te kaupapa D, ka tika.

import std.stdio;
import std.algorithm;

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

Engari, he poto noa iho, engari kaore i te tika ake, na te mea ka warewarehia e te whakatinanatanga D te raru o te whakahaere hapa.

I roto i te ora tonu, i te pikinga o te uaua o te arorau, ka tere haere te aputa. Ka tere ake te katinga o te aputa ina hiahia koe ki te mahi i tetahi mahi kaore e taea te mahi ma te whakamahi i nga kaiwhakahaere reo paerewa.

Mo te pupuri, te whakaroa, me te panui, ki taku nei whakaaro, ka toa te reo Haere, ahakoa ka ngaro i te korero.

Ko nga kaupapa whaanui i etahi wa ka whai hua kaore e taea te whakakore. Ka tino whakaatuhia tenei e te kohinga momo. Na, ki te whakariterite i tetahi rarangi, me whakauru noa tatou i te atanga sort.Interface.

import "sort"

type Names []string

func (ns Names) Len() int {
    return len(ns)
}

func (ns Names) Less(i, j int) bool {
    return ns[i] < ns[j]
}

func (ns Names) Swap(i, j int) {
    ns[i], ns[j] = ns[j], ns[i]
}

func main() {
    names := Names{"London", "Berlin", "Rim"}
    sort.Sort(names)
}

Mena ka tango koe i tetahi kaupapa puna tuwhera me te whakahaere i te grep "atanga{}" -R tono, ka kite koe i te maha o nga atanga rangirua e whakamahia ana. Ko nga hoa tata ka kii tonu ko enei mea katoa na te kore o nga tikanga. Engari, ehara i te mea ko te ahua tonu tenei. Me tango a DELPHI hei tauira. Ahakoa te noho mai o enei momo whakapapa, kei roto he momo TANGATA motuhake mo nga mahi me nga momo raraunga noa. He pera ano te reo Haere.

Mai i te pu ki nga pihoihoi

A me uru te koti kuiti ki te rahi o te porangi. Stanislav Lec.

He maha nga kaiwhaiwhai tino kaha e kii ana kei a Go tetahi atu tikanga mo te hanga i nga tikanga - whakaata. A ka tika ratou ... engari i nga keehi onge.

Ka whakatupato a Rob Pike ki a tatou:

He taputapu kaha tenei me whakamahi ma te tupato. Me karohia ki te kore e tino tika.

Ka korero mai a Wikipedia ki a maatau e whai ake nei:

Ko te whakaaro huritao e pa ana ki te tukanga e taea ai e te hotaka te aro turuki me te whakarereke i ona ake hanganga me ana whanonga i te wa e mahia ana. Ko te kaupapa kaupapa whakaata e kiia ana ko te kaupapa whakaata. He momo kaupapa meta tenei.

Engari, e mohio ana koe, me utu koe mo nga mea katoa. I tenei keehi ko:

  • he uaua ki te tuhi kaupapa
  • tere mahi hōtaka

Nō reira, me tūpato te whakaaro huritao, pēnei i te patu-nui. Ko te whakamahi whakaarokore o te whakaata ka arahi ki nga kaupapa kore e taea te panui, nga hapa tonu me te iti o te tere. Ko te mea noa mo te kaitakataka whakahiihi kia kaha ki te whakaatu i tana tohu ki mua i etahi atu hoa mahi tino pai me te ngawari.

Ko nga taonga ahurea mai i Xi? Kao, mai i nga reo maha!

I te taha o te taonga, ka waiho ano nga nama ki nga uri.

Ahakoa te whakaaro o te tokomaha kei runga katoa te reo i te taonga tuku iho C, ehara i te penei. Kei roto i te reo te maha o nga ahuatanga o nga reo hotaka pai rawa atu.

wetereo

Tuatahi, ko te wetereo o nga hanganga wetereo kei runga i te wetereo o te reo C. Heoi ano, he awe nui ano te reo DELPHI. No reira, ka kite tatou kua whakakorea katoatia nga reu here, e tino whakaiti ana i te panui o te papatono. Kei roto hoki i te reo te kaiwhakahaere “:=” kei roto i te reo DELPHI. Ko te kaupapa o nga kete ka nama mai i nga reo penei i te ADA. Ko te whakapuakanga o nga hinonga kaore i whakamahia he mea nama mai i te reo PROLOG.

Kupu-kupu

I ahu mai nga kohinga i runga i nga tikanga o te reo DELPHI. Kei ia kete nga raraunga me te waehere kei roto i nga hinonga motuhake me te iwi. Ma tenei ka taea e koe te whakaiti i te atanga mokihi ki te iti rawa.

Ko te mahi whakatinana ma te tikanga tuku i tono mai i te reo DELPHI.

Whakahiato

Ehara i te mea he korero whakakata: I whakawhanakehia a Go i te wa e whakahiato ana te kaupapa C. Ko tetahi o nga kaha o te reo ko tana whakahiato tino tere. I tonohia te whakaaro mai i te reo DELPHI. Ko ia kete Haere e rite ana ki tetahi waahanga DELPHI. Ka whakahiatohia enei kohinga ina tika ana. No reira, i muri i te whakatikanga e whai ake nei, kaore koe e hiahia ki te whakahiato i te kaupapa katoa, engari me whakahiato noa nga kete me nga kete kua whakarereketia e whakawhirinaki ana ki enei kete whakarereke (a ahakoa, mena kua rereke nga hononga atanga).

Nga hanganga taumata teitei

Kei roto i te reo he maha nga momo hanga taumata teitei e kore e hono ki nga reo taumata iti penei i a C.

  • Nga aho
  • Tepu Hash
  • Nga poro
  • Ko te patopato parera he mea nama mai i nga reo penei i a RUBY (ko te mea kino, he maha nga mea kaore i te marama, i te whakamahi ranei ki tona kaha katoa).

Te whakahaere mahara

Ko te whakahaere mahara ka tika ki tetahi tuhinga motuhake. Mena i roto i nga reo penei i te C ++, ka waiho katoa te mana ki te kaiwhakawhanake, na i nga reo o muri mai penei i te DELPHI, i whakamahia he tauira tatau tohutoro. Na tenei huarahi, kaore i whakaaetia nga tohutoro huri noa, i te mea i hangaia nga tautau pani, katahi ka kitea e Go nga momo tautau (penei i te C#). I tua atu, he pai ake te kaikohi paru i te nuinga o nga whakatinanatanga e mohiotia ana i naianei, a ka taea te whakamahi mo te maha o nga mahi tuuturu. Ko te reo ake e mohio ana ki nga ahuatanga ka taea te tohatoha i tetahi uara hei penapena taurangi ki runga i te puranga. Ma tenei ka whakaiti i te kawenga i runga i te kaiwhakahaere mahara me te whakanui ake i te tere o te papatono.

Concurrency and Concurrency

Ko te whakarara me te whakataetae o te reo kei tua atu i te mihi. Karekau he reo taumata iti ka taea te whakataetae ki a Go. Ki te tika, he mea tika kia mohio ko te tauira kaore i hangaia e nga kaituhi o te reo, engari i nama noa mai i te reo ADA tawhito pai. Ka taea e te reo te tukatuka i nga miriona o nga hononga whakarara ma te whakamahi i nga PTM katoa, i te mea he iti ake te raupapa o nga raruraru uaua me nga mate me nga tikanga reihi he tohu mo te waehere miro-maha.

He painga taapiri

Mena ka whai hua, ka noho ngakau kore nga tangata katoa.

Ka whakawhiwhia ano e te reo he maha o nga painga kaore e ruarua:

  • Ko te konae kotahi ka taea te whakahaere i muri i te hanga i te kaupapa ka tino ngawari te tuku tono.
  • Ka taea e te patopato me te momo whakatauki te whakaiti i te maha o nga hapa o to waehere, ahakoa kaore he whakamatautau tuhituhi. Kei te mohio ahau ki etahi kaiwhakaputa karekau e tuhi ana i nga whakamatautau me te kore e tino mamae te kounga o a raatau waehere.
  • Ko te whakahiato-whakawhitinga tino ngawari me te kawe pai o te whare pukapuka paerewa, e tino ngawari ana te whakawhanaketanga o nga tono whakawhiti-papa.
  • Ko nga korero auau RE2 he miro-haumaru, he wa mahi matapae.
  • He whare pukapuka paerewa kaha e taea ai e te nuinga o nga kaupapa te mahi kaore he anga-tuatoru.
  • He kaha te reo ki te aro ki te rapanga, kaua ki te pehea ki te whakaoti, engari he iti te taumata e taea ai te whakaoti pai.
  • Kei roto i te punaha Go eco nga taputapu kua whakawhanakehia i waho o te pouaka mo nga waa katoa: nga whakamatautau, nga tuhinga, te whakahaere kete, nga raina kaha, te whakaputa waehere, te kaitirotiro tikanga iwi, aha atu.
  • Haere ki te putanga 1.11 i whakauru mai i te whakahaeretanga o te ti'aturi i roto, i hangaia ki runga ake o te manaaki VCS rongonui. Ko nga taputapu katoa e hanga ana i te punaha rauropi Go ka whakamahi i enei ratonga ki te tango, ki te hanga, ki te whakauru waehere mai i a raatau i te wa kotahi. A he rawe tera. I te taenga mai o te putanga 1.11, i tino whakatauhia te raru mo te whakaputanga kete.
  • Na te mea ko te kaupapa matua o te reo ko te whakaiti i te makutu, ka akiaki te reo i nga kaiwhakawhanake kia mahi tika te whakahaere hapa. A he tika tenei, na te mea kaore, ka wareware noa ki te whakahaere hapa. Ko tetahi atu mea ko te nuinga o nga kaiwhakawhanake kaore e aro ki te whakahaere hapa, me te pai ki te tukatuka i a raatau ki te tuku noa i te hapa ki runga.
  • Kaore te reo e whakatinana i nga tikanga OOP puāwaitanga, na te mea i tona ahua parakore kaore he mariko i roto i te Haere. Heoi, ehara tenei i te raru ina whakamahi nga hononga. Ko te kore o te OOP ka tino whakaiti i te arai ki te urunga mo te hunga timata.

Te ngawari mo te painga o te hapori

He ngawari ki te whakararu, he uaua ki te whakangawari.

I hoahoatia a Go kia ngawari, ka angitu ki taua whainga. He mea tuhi mo nga kaitakataka mohio e mohio ana ki nga painga o te mahi tahi me te hoha ki te rerekee mutunga kore o nga reo taumata-Hononga. He iti nei te huinga o nga hanganga syntactic i roto i tana taonga, karekau e rerekee i roto i te waa, na reira he nui te wa e waatea ana nga kaiwhakawhanake mo te whakawhanaketanga, kaua mo te ako mutunga kore i nga mahi auaha reo.

He maha nga painga ka whakawhiwhia ki nga kamupene: na te iti o te arai urunga ka taea e ratou te rapu tere i tetahi tohunga, na te kore whakarereke o te reo ka taea e ratou te whakamahi i taua waehere ahakoa i muri i te 10 tau.

mutunga

Ko te rahi o te roro kaore ano kia eke tetahi arewhana hei toa Nobel.

Mo te hunga hötaka kei mua ake i te wairua o te roopu, tae atu ki nga kaitoi whakaaro e aroha ana ki nga wero o te matauranga me te "whakapai ake i a koe ano", he tino kino te reo, na te mea he reo toi toi whanui e kore e taea e koe te tiki. harikoa rerehua mai i te hua o to mahi me te whakaatu i a koe he tohungatanga ki mua i o hoa mahi (mehemea ka ine maatau te matauranga ma enei paearu, kaua ma te IQ). Ka rite ki nga mea katoa i roto i te ao, he kaupapa mo nga kaupapa matua. Pērā i ngā mahi auaha katoa, kua roa kē te reo mai i te whakakāhoretanga o te ao ki te whakaae papatipu. He maamaa te reo i roto i tona ngawari, a, e mohio ana koe, he maamaa nga mea mohio katoa!

Source: will.com

Tāpiri i te kōrero