Веб - серверді қорғау


Аннотация
Тема дипломной работы - «Разработка Web-приложения с использованием системы защиты».
Цель работы - Разработка Web-приложения с использованием системы защиты с использованием языка программирования Golang.
При создании программы использовался язык программирования Golang, с актуальным и новейшим набором библиотек. При работе программа должна выполнять функцию передачи SSH ключей.
Произведен процесс расчетов окупаемости, расходов и доход от создаваемого продукта. Учтены нынешние цены на электроэнергию, закупаемые товары.
Рассмотрена работа с точки зрения безопасности помещения, где происходит процесс разработки программного продукта.
Аңдатпа
Дипломдық жұмысынң тақырыбы - «Қорғаныс жүйесін қолдана отырып Web қосымшасын жасау».
Жұмыстың мақсаты - Golang бағдарламалау тілін қолдана отырып, қорғаныс жүйесін қолдана отырып, Web қосымшасын жасау.
Бағдарламаны құру кезінде кітапханалардың өзекті және соңғы жиынтығы бар Golang бағдарламалау тілі қолданылды. Жұмыс кезінде бағдарлама SSH кілттерін беру функциясын орындауы керек.
Өндірілген өнімнің өтелуін, шығыстарын және кірісін есептеу процесі жүргізілді. Электр энергиясының, сатып алынатын тауарлардың қазіргі бағасы ескерілді.
Жұмыс бағдарламалық өнімді әзірлеу процесі жүретін бөлменің қауіпсіздігі тұрғысынан қарастырылады.
Annotation
The topic of the thesis is the «Development of a Web application using a security system».
The purpose of the work is the development of a Web application using a security system using the Golang programming language.
When creating the program, the Golang programming language was used, with an up-to-date and newest set of libraries. When working, the program must perform the function of transferring SSH keys.
The process of calculating the payback, expenses and income from the created product has been carried out. Current electricity prices and purchased goods are taken into account.
The work is considered from the point of view of the security of the room where the process of developing a software product takes place.
Мазмұндама
1 Веб-серверді қорғау8
1. 1 Веб-сервер мен қолданба серверін қорғау жолдары8
1. 2 SSH кілттерін құру9
2 Golang бағдарламалау тілі12
2. 1 Golang туралы түсінік12
2. 2 Бағдарламалау тілінің негіздері13
2. 3 Go циклдары17
2. 4 Gin шеңбері18
2. 5 Pgx кітапханаларының жиынтығы18
2. 6 Go жобасын құру20
3 Практикалық бөлімі22
3. 1 Қолданылатын бағдарламалық жасақтамалар22
3. 2 Жобаға арналған программаны әзірлеу33
3. 3 Шабуыл процессі37
4 Тіршілік қауіпсіздігі41
4. 1 Инженердің жұмыс жағдайын талдау41
4. 2 Кондиционерлеу және ауаны жаңарту жүйелерін есептеу45
4. 3 Тіршілік қауіпсіздігі бөлімінің қорытындысы51
5 Технико - экономикалық негізделуі52
5. 1 Жұмыс туралы ақпарат және қажеттілігін негіздеу52
5. 2 Бағдарламалық қамтаманың өңделуінің еңбек өнімділігінің есептелуі52
5. 3 Бағдарламалық қамтаманы өңдеуге кеткен шығынның есептелуі54
5. 4 Қосымша шығындар статьясы55
5. 6 Бағдарламалық өнімді иемденудегі кәсіпорындардың бірмезгілдегі шығындарын есептеу59
5. 7 Таза ағымдағы құндылықты есептеу60
5. 8 Экономика бөлімінің қорытындысы61
Қорытынды62
Әдебиет тізімі63
Қосымша А65
Кіріспе
Дипломдық жобаның тақырыбы - «Қорғаныс жүйесін қолдана отырып Web қосымшасын жасау».
Дипломдық жобасының есептері:
1) SSH кілттері туралы мәліметтерді алу;
2) Бағдарламалау тілін қолдану арқылы бағдарламаны құру қасиеттерін зерттеу;
3) Golang бағдарламалау тілі арқылы ақпаратты қорғау жүйесін әзірлеу;
4) Тіршілік қауіпсіздігі бөлімі үшін есептеулер жүргізуге;
5) Экономика бөлімінде дипломдық жобаның есебін жүргізу.
Дипломдық жобаның ғылыми жаңалықтары: Go жабдықтау тілін қолдана Web қосымшасын әзірлеу.
Дипломдық жобаның өзектілігі - Go жабдықтау тілін қолдана отырып қарастыру.
Дипломдық жобаның зерттелу дәрежесі - диплмодық жоба толығымен зерттелді және іске асыруға дайын.
Дипломдық жобаға қолданатын әдебиет көздерін талдау - дипломдық жобада пайдаланылатын әдебиеттер интернет ресурстарынан, АЭжБУ университетінің кітапханасынан, сондай-ақ Абылай хан көшесіндегі Ұлттық кітапханадан алынды.
Дипломдық жобаны талдау нысандары - дипломдық жобаны талдау формалары-оларға Go жбадықтау тілі туралы ақпарат, кестелер және бағдарламалық өнімнің скриншоттары кіреді.
Веб - қосымшалардың қауіпсіздігі 10 жылдан астам уақыт бойы ақпараттық қауіпсіздіктің негізгі тенденциялары мен қауіптерінің ондығына кірді. Шынында да, қазіргі заманғы бизнес-процестер мен күнделікті өмір веб-қосымшаларды әр түрлі аспектілерде қолдануға байланысты: күрделі инфрақұрылымдық жүйелерден IoT құрылғыларына дейін. Дегенмен, веб-қосымшаларды қорғауға арналған арнайы құралдар өте аз және көбінесе бұл тапсырма әзірлеушілерге жүктеледі (немесе ол шешіледі деп үміттенеді) . Бұл әртүрлі құрылымдарды, санитарияны, деректерді тазалауды, қалыпқа келтіруді және т. б. Алайда, бұл құралдарды қолданған кезде де интернет қауіпсіз бола алмады, сонымен қатар "классикалық желінің" барлық осалдықтары мобильді дамуға көшті. Бұл мақалада осалдықты қалай болдырмауға болатындығы туралы емес, веб-қосымшаны веб-қосымшаның брандмауэрі арқылы оны пайдаланудан қалай қорғауға болатындығы туралы айтылады.
Веб-сервердің дұрыс конфигурациясынан сайтты қажетсіз файлдар мен Код бөлімдерінен тазарту және минималды бақылау. Шынында да, арналар әлсіз болды, DDoS таралмады, осалдықтар аз болды, қосымшалар қарапайым болды және қолданушылардың әрекеттері бірнеше сценарийлермен болжалды.
Уақыт өте келе веб-қосымшалар, серверлік инфрақұрылым және өзара әрекеттесу күрделене түсті, ал код "шабуыл беті"болып табылады. Интернет өте танымал болды, қаржылық өсу мүмкіндіктері пайда болды-бұл, әрине, осы салада басқа біреудің жұмысын заңсыз пайдаланғысы келетіндерді қызықтырды.
Веб-қосымшаларға жасалған шабуылдардың саны мен әртүрлілігі экспоненциалды түрде өсе бастады, оларды шартты түрде екі санатқа бөлуге болады (ақпараттық қауіпсіздік тұжырымдамасына негізделген) :
- ақпараттың құпиялылығын бұзуға бағытталған қауіптер;
- ақпараттың қолжетімділігін бұзуға бағытталған қауіптер.
Біріншіден, бұл осалдықтарды пайдалануға, екіншіден, қызмет көрсетуден бас тартуға қатысты. Егер қосымшаны жоспарлау және әзірлеу кезеңінде кейбір шабуылдардан аулақ болуға тырысу мүмкін болса. Веб-қосымшаны интернетте орналастырған кезде сайт (әсіресе танымал қызмет саласы немесе компания) барлық бағытта шабуыл жасай бастайды:
- осалдықтарды пайдаланудың автоматтандырылған жүйелері;
- кәсіби киберқылмыскерлер;
- жаңадан келгендер, әуесқойлар.
Олардың әртүрлі әдістері, тәсілдері мен құралдары бар - оларды біріктіретін бір мақсат - веб-қосымшаны бұзу немесе бұзу.
1 Веб-серверді қорғау
1. 1 Веб-сервер мен қолданба серверін қорғау жолдары
Веб-сервер мен қолданбалы серверді қорғау-бұл веб-трафикті, жергілікті кәсіпорын желісін және онда сақталған ақпаратты қорғау мақсатында осы серверлерге бағытталған қауіптерді жою шараларының жиынтығы.
Веб-сервер-бұл HTTP сұрауларына қызмет көрсететін сервер. Оның басты міндеті-сайттың статикалық мазмұнын көрсету. Сонымен қатар, ол веб-беттердің жұмысын автоматтандырады, пайдаланушыларға рұқсат береді және аутентификациялайды, пайдаланушы сұрауларының журналын жүргізеді, қауіпсіз HTTPS қосылымдарын қолдайды. Мұндай веб-сервер статикалық деп те аталады. Ол қолданба серверінсіз бөлек жұмыс істей алады.
Статикалық веб-сервер қолданба серверімен және дерекқормен бірге жұмыс істегенде, ол динамикалық мазмұн сұрауларын қолданба серверіне жібереді. Бұл жағдайда оны динамикалық деп атайды.
Қолданба сервері-бұл HTTP және HTTPS-пен ғана емес, басқа протоколдармен де жұмыс істейтін құрылым (бағдарламалық платформа) . Ол пайдаланушылардың динамикалық және статикалық мазмұнмен өзара әрекеттесуін қамтамасыз етеді.
Веб - сервер мен қосымшалар сервері Бағдарламалық жасақтамаға енуден, трафикті ұстап қалудан және маңызды ақпаратқа рұқсатсыз қол жеткізуден қорғауды қажет етеді.
Веб-серверді ақпараттық қорғау жөніндегі іс-шараларды жүзеге асырар алдында сервер жұмысының жүйелеріне аудит (талдау) жүргізу қажет. Бұл қауіптің түрін және қауіпсіздікті қамтамасыз ету әдістерін анықтауға көмектеседі.
Қауіптің негізгі түрлері:
- операциялық жүйеге хакерлік шабуыл және бағдарламалық жасақтаманы қамтамасыз ететін файлдарды өзгерту;
- трафикке рұқсатсыз қол жеткізу және оны ұстап алу;
- Серверге DDoS шабуылдары;
- бұзылу немесе оның істен шығуы нәтижесінде серверлік жабдықтың жұмысындағы қателер;
- веб-серверге қызмет көрсетудегі қателер сияқты адам факторы;
- веб-серверді қасақана бұзу және оны пайдалану кезінде қателіктер жіберу.
Веб-сервер мен қолданба серверін қорғаудың мақсаты оларға рұқсатсыз кіруді болдырмау болып табылады. Ол үшін серверлердегі ақпаратқа қол жеткізу құқықтарының аражігін ажырату жүргізіледі. Трафикті қорғауды қамтамасыз ету үшін ақпаратты шифрлау және оны қорғалған байланыс арналары арқылы беру әдістері қолданылады.
Қауіпсіздік үшін қолданба сервері қолданбалардың брандмауэрін (Web application firewall немесе қысқаша WAF) пайдаланады. Бұл қолданбалы деңгейде жұмыс істейтін мониторлар мен сүзгілер кешені. WAF кіріс және шығыс трафикті нақты уақыт режимінде талдау және шешім қабылдау үшін қолданба серверінің үстінде орналасқан қабылдамау немесе рұқсат беру.
1. 2 SSH кілттерін құру
Ашық және жабық SSH кілттерінің жұбы-бұл криптографиямен жасалған арнайы кодтар. Олар сенімді пайдаланушыны анықтауға мүмкіндік береді және тиімділігі бойынша логиндер мен парольдерді құрудан асып түседі.
Бұл технологияда адам факторы, сондай-ақ есептеу технологияларының көмегімен парольді әдейі таңдау толығымен алынып тасталады. Теориялық тұрғыдан кілттердің тіркесімін шешуге болады, бірақ бұл ерекше жағдайларда жүзеге асырылуы мүмкін тым көп уақытты қажет ететін және ұзақ процесс.
Жүйе әкімшісі кез-келген операциялық жүйеде, соның ішінде ашық бастапқы Unix жүйелерінде SSH кілттерін теңшей алады.
Брандмауэрді орнату
Брандмауэрді желілік экран, брандмауэр немесе брандмауэр деп те атайды. Бұл веб-серверді ашық порттар мен трафик арқылы рұқсатсыз кіруден қорғайтын бағдарламалық құрал немесе Бағдарламалық құрал шешімі. Кіру корпоративтік қауіпсіздік саясатына сәйкес желі экранының параметрлерімен реттеледі.
Брандмауэр алдын ала аудит нәтижелеріне және қосымша қорғау әдістеріне қарамастан кез келген ақпараттық қауіпсіздік жүйесі үшін міндетті болып табылады.
VPN және Private Networking - бұл серверлер мен пайдаланушылар арасында Қауіпсіз байланысы бар виртуалды жеке желіні және жеке желіні құру технологиясы.
Vpn және Private Networking компанияның қажеттіліктеріне сәйкес келеді. Жеке желінің бар екендігі туралы оның пайдаланушылары ғана біледі. Бұл сыртқы қауіптерді азайтуға мүмкіндік береді.
1. 1 сурет- VPN жұмыс принципі
Веб-серверді қорғаудың стандартты әдістері оны DDoS шабуылдарынан қорғай алмайды.
Веб-Сервердің DDoS шабуылдарынан қауіпсіздігі үшін брандмауэр, iptables және ipset утилиталары және боттарды бұғаттауға арналған сценарийлер қажет.
PKI - және SSL/TLS-шифрлау
Бұл пайдаланушыны сәйкестендіру сертификаттарын құру және шифрланған ақпаратты SSL/TLS криптографиялық протоколы арқылы беру үшін ашық кілт инфрақұрылымын (PKI) құру.
1. 2 сурет - SSH кілттері
Ол үшін қол жеткізу құқығын тексеру үшін сертификаттау және сертификаттарды басқару орталығы құрылады.
1. 3 Оқшауланған ортаны құру
Бұл қосымшалар мен бағдарламалардың оқшауланған жұмыс ортасын құру, оларды бір-бірінен бөліп, өз серверлеріне бөлу. Оқшаулау дәрежесі әр бағдарламалық өнімнің жүйелік талаптарына және оның бүкіл АТ инфрақұрылымының жұмысындағы маңыздылық деңгейіне байланысты.
Осылайша, бағдарламалық жасақтама қауіп-қатерден және бір процеске рұқсатсыз қол жеткізудің бүкіл жүйесінің жұмысына әсер етуден оқшауланады.
Веб-сервер қандай амалдық жүйеде жұмыс істейтініне қарамастан, антивирустық бағдарламаларды орнатуды елемеу ұсынылмайды. Кез-келген файлды жұқтырған жағдайда, антивирустық бағдарлама вирустың бүкіл жүйені басып алуына жол бермейді.
Деректердің қолжетімділігін қамтамасыз ету
Веб-сервер мен қосымшалар серверін сыртқы қауіптерден қорғаудан басқа, ішкі қауіптерден де шаралар қолданылады: қызметкерлердің қателіктері, жабдықтың істен шығуы немесе бағдарламалық жасақтама. Шешімдер кешені деректерді қорғауға және техникалық құралдардың ақауларға төзімділігін қамтамасыз етуге бағытталған.
Веб-серверді қорғауды қамтамасыз етудің барлық сипатталған тәсілдерін бірге немесе бөлек жүзеге асыруға болады.
2 Golang бағдарламалау тілі
2. 1 Golang туралы түсінік
Голанг Google-да әзірленген және оны Роберт Гриземер, Роб Пайк және кен Томпсон жасаған. Ол алғаш рет 2007 жылдың 21 қыркүйегінде талқыланды және ақырында 2009 жылдың 10 қарашасында Ашық бастапқы жоба болды.
Go веб-сайтында хабарланғандай, бұл тіл жұмыс істеу үшін бағдарламалау тілін таңдау кезінде тиімді құрастыру, тиімді орындау немесе бағдарламалаудың қарапайымдылығы арасындағы қажетті таңдаудың арқасында дүниеге келді. Осылайша, Go-ның негізгі мақсаты статикалық теру арқылы құрастырылған тілдің тиімділігі мен қауіпсіздігін сақтай отырып, түсіндірілетін және динамикалық терілген тілдің қарапайымдылығына қол жеткізетін тіл құру болды. Тағы бір басты мақсат-параллелизмді тілдің басымдықтарының біріне айналдыру арқылы көп ядролы процессорлардың өсуінің артықшылықтарын пайдалану .
Go мақсаттарын тереңірек түсіну үшін мен Роб Пайк жазған осы мақаланы оқуды ұсынамын. Осы мақалада айтылған кейбір мақсаттар шешімін табуды қамтиды:
- баяу құрастырулар;
- бақыланбайтын тәуелділіктер;
- әр бағдарламашы тілдің әр түрлі ішкі жиынтығын қолданады;
- бағдарламаны нашар түсіну (кодты оқу қиын, нашар құжатталған және т. б. ) ;
- күш-жігерді қайталау;
- жаңарту құны;
- нұсқаның қисаюы;
- Автоматты құралдарды жазудың қиындығы;
- кросс-тілдік құрылымдар.
Google үлкен кодтық базалары бар ауқымды жүйелермен жұмыс істейтінін ескере отырып, Go ең алдымен үлкен жүйелердегі ең көп кездесетін мәселелерді шешуге тырысатын "бағдарламалық жасақтама қызметінде" тіл ретінде дамыды.
Жұмыс
Сәлем Әлем!
Ал, бәрі туралы! Go-да алғашқы бағдарламамызды жазуды бастайық. Келесі бөлімдерде мен бағдарламамыздың әр бөлігін толығырақ түсіндіремін. Біз "Сәлем әлемін" басып шығара аламыз!"кодтың келесі бірнеше жолдары бар хабарлама:
негізгі пакетимпорт
"фмт"func main() {
fmt. Println("Привет, мир!") }
Жоғарыда келтірілген фрагменттің алғашқы түсіндірмесін жасайық, осылайша біз алғашқы құрылыс блоктарын ала бастаймыз. Go бағдарламалары пакеттерде ұйымдастырылған және бір арнайы пакет орындалатын командаларда қолданылуы керек "негізгі" болып табылады. Енді біз бағдарламамызға пакеттерді қосуға мүмкіндік беретін импорттау операторына ауыса аламыз. Айта кету керек, біз келесі синтаксисі бар бірнеше пакетті импорттай аламыз:импорт
("<пакет_1>"
"<пакет_2>" )
Біздің мысалда біз "fmt" бумасын көреміз, ол әдетте стандартты кірістен оқу немесе стандартты шығысқа жазу үшін қолданылады. Біз бұл пакетті осы дипломдық жұмыс дамыған сайын егжей-тегжейлі зерттейтін боламыз.
Соңында, біз таба аламыз FUNC main() біздің Go бағдарламамыздың негізгі функциясын жариялайтын таңқаларлық емес хабарландыру.
2. 2 Бағдарламалау тілінің негіздері
Go-статикалық терілген тіл. Бұл дегеніміз, динамикалық терілген тілдерден айырмашылығы (мысалы, JavaScript немесе Python), сіз бастапқыда айнымалы түрін жариялайсыз және оны ұстанасыз. Мысалы, егер сіз бүтін айнымалыны жарияласаңыз, ол өмірлік циклінің кейінгі кезеңінде жол бола алмайды. Неғұрлым егжей-тегжейлі және қатаң болғанымен, айнымалы түрі әрқашан бірдей екенін ескере отырып, компиляторға кодты оңтайландыруға көбірек мүмкіндік береді. Тілдерді статикалық және динамикалық терумен толығырақ салыстыру үшін осы мақаланы қараңыз.
Алғашқы айнымалыларымызды жариялайық. Ол үшін біз келесі синтаксисті қолдануымыз керек:
var < аты > < түрі > [=<мәні>]
Мен толтырғыш ретінде <және> арасындағы мәндерді қолданамын, ал квадрат жақшалар [] оператордың қосымша бөлігін білдіреді. Осылайша, келесі екі мәлімдеме де дұрыс болады:
Var i int
var J string = "Сәлем"
J айнымалысын "Сәлем" жолымен нақты , бұл i айнымалысы да ескеріңіз: тек жарияланған айнымалылар "нөлдік мәнмен" инициализацияланады, ол сандар үшін 0-ге, жолдар үшін "" және логикалық айнымалылар үшін жалған.
Сонымен қатар, келесі синтаксисі бар кодтың бір жолын пайдаланып, бір типтегі бірнеше айнымалыларды жариялауға (және қажет болған жағдайда инициализациялауға) болады:
var "ат_1", "ат_2 "" тип " [="мән_1", "мән_2"]
Біз бұл мүмкіндікті мысалмен суреттейміз:
айнымалы i, j Int = 12, 27
Алайда, голангтың мақсаты тиімді кодты құру ғана емес, сонымен қатар бағдарламалау процесін жеделдету болды. Сондықтан біз айнымалыны Walrus: = операторының көмегімен инициализациялай аламыз. Осы операторды қолдана отырып, синтаксис қысқа болады және айнымалының түрін нақты анықтаудың қажеті жоқ (Go мұны біз үшін шешеді, мысалы, типтің шығысы) . Дегенмен, walrus операторын тек функция ішінде пайдалануға болатынын ескеру маңызды. Келесі мысал айнымалының декларациясы мен инициализациясының қаншалықты қарапайым болатынын көрсете алады:
к: = 42. 0
Сонымен қатар, Go айнымалының көрінуін оның атына қарай анықтауға мүмкіндік береді. Егер сіздің айнымалыңыз кіші әріптен басталса, ол пакеттің ішінде қалады. Алайда, егер бірінші әріп бас әріппен жазылса, ол басқа пакеттерге көрінеді (немесе экспортталады) .
Мен осы бөлімді келесі ескертулермен аяқтағым келеді:
- барлық айнымалыларды пайдалану керек, әйтпесе Go компиляция уақытының қатесін қайтарады.
- айнымалыны қайта жариялауға жол берілмейді (көлеңкеден басқа ) .
- жоғарыда келтірілген Walrus операторының мысалы float64 типті айнымалыны жасайды. Егер біз float32 жасағымыз келсе, толығырақ жарнаманы пайдалануымыз керек.
Сіз сондай-ақ рұқсат етілген деректер түрлерінің тізімін қарап шығуға қызығушылық танытуыңыз мүмкін .
Келесі синтаксисті қолдану арқылы мәнді басқа түрге түрлендіруге (немесе түрлендіруге) болады:
<түрі>(<айнымалы>)
Әрине, орнында келтіруге жол берілмейді, өйткені біз статикалық теру арқылы тілде жұмыс істейміз:
Var i int = 12
var j float32 = float32(i)
Енді бүтін санды жолға түрлендіруге тырысайық:
a: = 65
b: = жол (a)
fmt. Println(b)
Егер сіз жоғарыдағы кодтың 3 жолын іске қоссаңыз, ол біз күткендей "65" орнына "A" шығаратынын көресіз. Себебі бүтін санды жолға тікелей түрлендіру берілген санның юникод таңбасын қайтарады ("А" - юникодтағы № 65 таңба) .
Сонымен . . . бүтін санды жолға қалай түрлендіруге болады? Ол үшін бізге strconv пакеті қажет. Атап айтқанда, бұл жағдайда бізге Itoa функциясы қажет болады (ASCII ішіндегі бүтін) :
негізгі пакет импорты ("fmt"
"strconv"
) func main () {
a: = 65
b: = strconv. Itoa(a)
fmt. Printf("%v, %T\n", b, b) }
Егер сіз жоғарыдағы фрагментті іске қоссаңыз, b қазір "65"екенін көресіз.
Сондай-ақ, const кілт сөзін пайдаланып тұрақты мәндерді анықтауға болады:
тұрақты с = 123
Енді z айнымалысы 123 тұрақты мәнге ие болады және сіз оны өзгерте алмайсыз. Сондай-ақ, морж операторы тұрақтыларға қолданылмайтынын қосқым келеді.
Пікірлер орны
Кодта Түсініктеме жазу әріптестеріңізге (және болашақта өзіңізге) код үзіндісін түсіндіруге көмектеседі. Сіз келесі синтаксиспен бір жолды Түсініктеме жаза аласыз:
// <пікір>
. . . немесе осыған ұқсас көп жолды пікірлер:
/ * <пікір> */
көрсеткіштер
Go мәннің жад мекенжайын қамтитын көрсеткіштермен жұмыс істеуге мүмкіндік береді. Көрсеткішті келесі синтаксиспен анықтай аламыз:
var < көрсеткіш атауы> * < түрі>
Мысал ретінде:
вар i * int
Біз сондай-ақ пайдалана аламыз &көрсетілген айнымалыға көрсеткішті қайтаратын оператор:
var < көрсеткіш атауы> * < түрі > = & < айнымалы>
Соңында, меңзердің мазмұнына * оператор арқылы қол жеткізе аламыз:
* < көрсеткіш атауы>
Қорытындылай келе, көрсеткіштермен қалай жұмыс істей алатынымызды қарастырайық:
Негізгі пакет импорттау " FMT " FUNC main () {
var i int = 27
var p *int = &i
fmt. Println(*p)
*p += 1
fmt. Println(i) }
Бұл мысалда біз 27 мәні бар бүтін IC айнымалысын, содан кейін оған сілтеме жасайтын p көрсеткішін жасадық. Содан кейін біз айнымалы мәнді көрсеткіш арқылы басып шығардық. Соңында, біз көрсеткіш арқылы айнымалы мәнін арттырдық және соңғы мәнді басып шығардық.
Біз келесі синтаксисті пайдаланып Go функциясын жасай аламыз:
func <name>([<var_1> <type_1>, <var_2> <type_2>] ) [<return_type>] {}
Жоғарыда келтірілген псевдокод үзіндісінде мен мысал ретінде екі аргументті қостым, бірақ біз нөлдік немесе одан да көп аргументтердің функцияларын бере аламыз. Мысал көрейік:
функция көбейту (i Int, j int) int {
i * j қайтару }
Қайтару мәні функцияның қолтаңбасында жарияланған қайтару мәнімен бірдей екенін ескеріңіз. Енді біз бұл мүмкіндікті келесідей шақыра аламыз:
көбейту (3, 11)
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz