《Go語言從入門到精通》Go語言快速入門_第1頁
《Go語言從入門到精通》Go語言快速入門_第2頁
《Go語言從入門到精通》Go語言快速入門_第3頁
《Go語言從入門到精通》Go語言快速入門_第4頁
《Go語言從入門到精通》Go語言快速入門_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Go語言快速入門Go語言從入門到精通快速掌握Go語言的基本寫法快速瀏覽Go語言的基本要素,為下一步深入學(xué)習(xí)做準(zhǔn)備01GRAMMAR02HELLOWORLD03BROWSEtarget目標(biāo)運(yùn)行起第一個(gè)Go語言程序目錄導(dǎo)航3.13.23.3初識(shí)Go語言——編寫、編譯和運(yùn)行Go語言程序的組織關(guān)鍵字等語言要素……ContentsGo語言程序源代碼文件的存放位置與環(huán)境變量GOPATH相關(guān)如果GOPATH設(shè)置為C:\goprjs,那么源代碼都將在C:\goprjs\src下的不同子目錄中Go語言代碼文件的命名Go語言代碼文件的文件名后綴(擴(kuò)展名)為.go名字可以任意取系統(tǒng)允許的文件名Go語言代碼文件的輸入1使用LiteIDE集成開發(fā)環(huán)境Go語言代碼文件的輸入2輸入Helloworld!程序代碼實(shí)際上,使用任何文本編輯器都可以編輯Go語言代碼Go語言代碼文件的編譯1使用gobuild命令進(jìn)行編譯,得到可執(zhí)行文件hello.exeGo語言代碼文件的編譯2goinstall命令將在GOPATH/bin(即C:\goprjs\bin)目錄下生成可執(zhí)行文件hello.exeGo語言程序的執(zhí)行1直接運(yùn)行Go語言編譯后的可執(zhí)行文件Go語言程序的執(zhí)行2運(yùn)行GOPATH/bin目錄下的可執(zhí)行文件,需要事先將GOPATH/bin加入到環(huán)境變量PATH中Go語言程序的執(zhí)行3直接用gorun命令運(yùn)行代碼驗(yàn)證gorun執(zhí)行的機(jī)制gorun的本質(zhì)是先編譯后執(zhí)行packagemainimport( "fmt" "os")funcmain(){fmt.Println("Helloworld!")dir,_:=os.Executable()fmt.Println(dir)}查看Go語言文檔1goget-v/x/tools/cmd/godoc新版Go語言默認(rèn)不安裝godoc,需自行安裝運(yùn)行g(shù)odoc命令后,用訪問本機(jī)的6060端口查看Go語言文檔2訪問官網(wǎng)的文檔:/doc/訪問標(biāo)準(zhǔn)庫和第三方庫的文檔:https://pkg.go.dev/目錄導(dǎo)航3.13.23.3初識(shí)Go語言——編寫、編譯和運(yùn)行Go語言程序的組織關(guān)鍵字等語言要素……ContentsGo語言中的程序文件的組織方式目錄文件包三要素main包的作用main的包是一個(gè)特殊的包,表示該包編譯后會(huì)生成一個(gè)可執(zhí)行文件;如果要編寫一個(gè)能夠被編譯成可執(zhí)行文件的程序,則代碼必須是在main包中main包中可以使用其他包main包中不論有多少文件,其中的main函數(shù)有且只能有一個(gè)main包中的main函數(shù)引用其他包的方法——import調(diào)用其他包中的函數(shù)——包名+“.”+函數(shù)名fmt是標(biāo)準(zhǔn)中的一個(gè)包,主要用于輸入、輸出信息main包中的main函數(shù)packagemain

import( "fmt")

funcmain(){ fmt.Println("Helloworld!")}main包內(nèi)main函數(shù)調(diào)用其他文件中的函數(shù)packagemain

import( "fmt")

funcmain(){ hello()}main.go文件main包中的其他文件sub.go文件小寫開頭的函數(shù)可以在本包內(nèi)被訪問非執(zhí)行包packagepackage1

import( "fmt")

funcHello(){ fmt.Println("Helloworld!")}包名只有首字母大寫的函數(shù)和變量可以被其他包訪問package1/package1.go文件調(diào)用非執(zhí)行包packagemainimport( "package1")funcmain(){ package1.Hello()}包名+“.”+函數(shù)名hello/main.go文件調(diào)用非執(zhí)行包非執(zhí)行包目錄名與包名可以不一致但不建議這樣做,最好一致以避免混亂用多級(jí)子目錄組織有關(guān)聯(lián)關(guān)系的包目錄導(dǎo)航3.23.33.4……Go語言程序的組織關(guān)鍵字等語言要素變量……Contents關(guān)鍵字(保留字)“關(guān)鍵字”(keyword)的概念,有時(shí)候也叫做“保留字”(reservedword)所謂的“保留”,可以理解成不能作為其他用途使用,例如不能用作變量名或函數(shù)名。例如前面遇到的package、import、func

等目錄導(dǎo)航3.33.43.5……關(guān)鍵字等語言要素變量表達(dá)式……Contents變量的概念變量就是編寫程序時(shí)存放數(shù)據(jù)的地方,由于存放的數(shù)據(jù)可以隨時(shí)改變,所以叫作“變”量(variable)Avariableisastoragelocationforholdinga

value.變量的類型整數(shù)——0,1,99,-30小數(shù)——2.3,-19.6*小數(shù)在編程中一般稱為浮點(diǎn)數(shù)文字(又稱字符串):abc,天氣真好布爾(boolean)類型:true,false*布爾類型只有兩個(gè)相反的值,可以對(duì)應(yīng)真/假、是/否、對(duì)/錯(cuò)等對(duì)立的概念變量名與變量值變量名只是一個(gè)記號(hào),標(biāo)志著一個(gè)存放數(shù)值的地方變量值才是指其中實(shí)際存放的數(shù)據(jù)的取值變量聲明與賦值Go語言是“強(qiáng)類型”的語言

必須先聲明(定義)變量才可以使用聲明變量最大的作用是明確它的類型聲明一個(gè)整數(shù)類型的變量a令a等于10等號(hào)“=”在編程中的意義數(shù)學(xué)中,“=”等號(hào)表示相等編程中,“=”表示賦值,即讓左邊的變量中的值為等式右邊的值數(shù)學(xué)上是錯(cuò)誤的編程中卻是常用的正確寫法最后輸出11Go語言中變量的快捷聲明與賦值方法:=操作符的含義Go語言自動(dòng)根據(jù)后面的數(shù)值推測(cè)該變量的類型,然后進(jìn)行賦值小提示:Go語言每條語句后無需加分號(hào)“;”變量不能重復(fù)聲明

包括用:=操作符的短聲明

下面的例子實(shí)現(xiàn)了交換變量a與b的數(shù)值的作用多個(gè)變量同時(shí)賦值

a

:=

18

b:=

33

a,

b

=

b,

a

fmt.Println(a,

b)浮點(diǎn)數(shù)類型的變量計(jì)算機(jī)中對(duì)數(shù)學(xué)中的小數(shù)一般稱作浮點(diǎn)數(shù)通過小數(shù)點(diǎn)的浮動(dòng)來表示更大范圍的小數(shù)Go語言中浮點(diǎn)數(shù)有兩種:float32和float64float64更被推薦使用浮點(diǎn)類型變量示例同時(shí)聲明多個(gè)變量多個(gè)變量同時(shí)賦值同時(shí)賦值多個(gè)變量在Go語言中也是允許的字符串類型的變量程序?qū)⑤敵鰃oodmorning字符串變量的聲明類型是string字符串變量的賦值要加雙引號(hào)字符串變量也支持用:=簡化聲明并賦值加號(hào)“+”表示連接前后兩個(gè)字符串布爾類型的變量變量b的值將為false布爾變量的聲明類型是bool布爾變量只有true或false兩個(gè)可能的取值!操作符用于將布爾值“取反”,即如果是true則變?yōu)閒alse,反之亦然正確的變量命名xmyFirstNameplan_for_2017錯(cuò)誤或者不建議使用的變量命名12——變量名字不能用數(shù)字開頭codeName張三——變量名字最好不使用中文a#6——變量名字不能含有大多數(shù)英文字符和數(shù)字之外的特殊字符,建議最多只用下劃線“_”

thisredapple——變量名字中不能有空格復(fù)合類型變量——切片(slice)切片用于在Go語言中表示一組數(shù)值Go語言的切片類型融合了其他語言中的靜態(tài)數(shù)組(固定長度)和動(dòng)態(tài)(可變長)數(shù)組的特性切片的聲明、分配空間和賦值切片有類型之分給切片中的某一項(xiàng)賦值小提示:這里切片的用法類似其他語言中的靜態(tài)數(shù)組給切片增加數(shù)據(jù)項(xiàng)append用于向切片末尾增加數(shù)據(jù)項(xiàng)從切片中截取數(shù)據(jù)項(xiàng)subAry將為[4,8]小提示:截取時(shí)不寫左邊的索引數(shù)字表示從頭開始,不寫右邊的表示截取到末尾從高級(jí)截取與合并append第二個(gè)參數(shù)加…,表示將整個(gè)切片添加在ary的末尾subAry最終的結(jié)果將為[2,4,8,2,4]復(fù)合類型變量——映射(map)映射用于表示其他語言中常稱作字典(dictionary)的復(fù)合數(shù)據(jù)類型通常由字符串來進(jìn)行索引,這個(gè)字符串被稱為“鍵(key)”而由該鍵所索引的位置里存放的具體數(shù)據(jù)就叫做“值(value)”映射是由一個(gè)個(gè)“鍵值對(duì)(key-valuepair)”組成的映射的聲明、分配空間和賦值鍵值對(duì)小提示:映射類型分配的空間會(huì)自動(dòng)增長,并非上限映射的聲明、分配空間和賦值Go語言特色用法,變量ok將是值為false的布爾類型變量其他復(fù)合類型Go語言中還有自定義數(shù)據(jù)類型(struct)和用于并發(fā)處理的通道類型等,將在后續(xù)介紹嚴(yán)格的變量類型控制int(整型)和int64(64位整型)居然不能相加變量類型的轉(zhuǎn)換

可以互相轉(zhuǎn)換的類型,直接用類型名加括號(hào)的方式就可以轉(zhuǎn)換錯(cuò)誤的變量類型轉(zhuǎn)換Go語言編譯器不知道怎樣將float64類型轉(zhuǎn)換為布爾類型float64類型與布爾類型不相容Go語言中的指針類型變量

相較于C/C++語言中的指針做了一定的改進(jìn),主要是相對(duì)更安全p是int類型的指針變量取變量a的地址向指針變量p指向的地址內(nèi)賦值最后變量a中的值為20指向復(fù)雜類型變量的指針切片也可以這樣簡化聲明并賦初值指向int類型切片的指針變量向指針變量p指向地址的序號(hào)為1的項(xiàng)賦值最后變量a中的值為[1,8,3]

僅聲明但未經(jīng)賦值的變量中,保存的是“零值”(zerovalue)變量的零值數(shù)字的零值一般為0布爾變量的零值是false字符串的零值是空字符串指針變量的零值是空指針nil切片和映射的零值是空切片或空映射目錄導(dǎo)航3.43.53.6……變量表達(dá)式函數(shù)(方法)……Contents

計(jì)算機(jī)編程中指的是一連串用運(yùn)算符或操作符連接各個(gè)數(shù)值組成的式子其中的數(shù)值也可以是變量或函數(shù),只要最后能夠計(jì)算出某個(gè)值表達(dá)式可以嵌套表達(dá)式通過計(jì)算最終可以得到一個(gè)值,叫做表達(dá)式的值單個(gè)數(shù)值、變量、函數(shù)也可以看作是表達(dá)式表達(dá)式(expression)的概念

Anexpressionspecifiesthecomputationofavaluebyapplyingoperatorsandfunctionstooperands.表達(dá)式的最主要的用途a=a+1表達(dá)式變量變量的作用是保存數(shù)值,表達(dá)式最終可以計(jì)算出一個(gè)數(shù)值,因此表達(dá)式可以被賦值給變量注意:返回多個(gè)數(shù)值的函數(shù)可以被看作數(shù)組或切片的復(fù)雜類型數(shù)值表達(dá)式中的括號(hào)a*(12-b)改變運(yùn)算的優(yōu)先級(jí)使用嵌套的圓括號(hào)是正確的寫法并且可以多級(jí)嵌套編程中不能使用數(shù)學(xué)中的方括號(hào)或花括號(hào)13-[8-(6+3)]13–(8-(6+3))目錄導(dǎo)航3.53.63.7……表達(dá)式函數(shù)(方法)自定義數(shù)據(jù)類型……Contents函數(shù)

函數(shù)的主要作用是將輸入的參數(shù)進(jìn)行一定的運(yùn)算處理后形成輸出的結(jié)果。輸入?yún)?shù)和輸出結(jié)果均可以是零至多個(gè)調(diào)用函數(shù)Go語言安裝時(shí)就附帶了標(biāo)準(zhǔn)庫,其中的函數(shù)可以直接使用(僅需先導(dǎo)入相應(yīng)的包)包名fmt.Println(1+2)函數(shù)名輸入?yún)?shù)這里是一個(gè)表達(dá)式,最終會(huì)計(jì)算出一個(gè)值,因此是一個(gè)參數(shù)調(diào)用函數(shù)Go語言安裝時(shí)就附帶了標(biāo)準(zhǔn)庫,其中的函數(shù)可以直接使用(僅需先導(dǎo)入相應(yīng)的包)包名fmt.Println(1+2)函數(shù)名輸入?yún)?shù)這里是一個(gè)表達(dá)式,最終會(huì)計(jì)算出一個(gè)值,因此是一個(gè)參數(shù)該函數(shù)將輸出3小提示:同一個(gè)包內(nèi)定義的函數(shù)調(diào)用時(shí)無需加包名自己編寫函數(shù)

編寫函數(shù)的最主要的目的是為了減少重復(fù)勞動(dòng)package

main

import

(

"fmt")

func

addTwice(a

int,

b

int)

int

{

return

a

+

b

+

b}

func

main()

{

c

:=

addTwice(1,

2)

fmt.Println(c)}定義函數(shù)的方式調(diào)用函數(shù)并利用其輸出值/返回值的方式自定義函數(shù)的注意事項(xiàng)用關(guān)鍵字func開始自定義一個(gè)函數(shù);函數(shù)的名字與變量命名的要求基本一致;函數(shù)名后面圓括號(hào)中定義了本函數(shù)接受的各個(gè)輸入?yún)?shù)及其類型;如果函數(shù)有輸出值(返回值),在函數(shù)圓括號(hào)后應(yīng)標(biāo)明返回值的類型;函數(shù)內(nèi)部的所有代碼應(yīng)包含在一個(gè)花括號(hào)(大括號(hào))中;如果函數(shù)有返回值,必須至少有一條return語句來返回結(jié)果值,每一個(gè)return語句都是該函數(shù)代碼執(zhí)行的終結(jié)點(diǎn),意味著return語句返回結(jié)果值后將不再往下執(zhí)行其他代碼。如果函數(shù)沒有返回值,也可以用不帶返回值的return語句來返回(強(qiáng)制終止函數(shù)的運(yùn)行);返回多個(gè)結(jié)果值的函數(shù)package

main

import

(

"fmt")

func

swapNumber(a,

b

int)

(int,

int)

{

return

b,

a}

func

main()

{

n1

:=

1

n2

:=

2

n3,

n4

:=

swapNumber(n1,

n2)

fmt.Println(n3)

fmt.Println(n4)}“廢棄”函數(shù)的返回值package

main

import

(

"fmt")

func

swapNumber(a,

b

int)

(int,

int)

{

return

b,

a}

func

main()

{

n1

:=

1

n2

:=

2

n3,

_

:=

swapNumber(n1,

n2)

fmt.Println(n3)}使用下劃線Go語言的內(nèi)置函數(shù)預(yù)先定義好,無需引用/導(dǎo)入任何包,例如println目錄導(dǎo)航3.63.73.8……函數(shù)(方法)自定義數(shù)據(jù)類型面向?qū)ο缶幊獭瑿ontentstype

MyInt

int

func

main()

{

var

a

MyInt

a

=

10

b

:=

MyInt(12)

c

:=

a

+

b自定義數(shù)據(jù)類型用type關(guān)鍵字來定義新的數(shù)據(jù)類型……使用時(shí)需要轉(zhuǎn)換type

Person

struct

{

Name

string

Gender

string

Age

int}

func

main()

{

var

a

Person

a.Name

=

"張三"

a.Gender

=

"男"

a.Age

=

25自定義復(fù)合數(shù)據(jù)類型用type加struct關(guān)鍵字定義復(fù)合數(shù)據(jù)類型類似C/C++等語言中的“結(jié)構(gòu)體”……用結(jié)構(gòu)變量名+“.”+成員變量名來訪問type

Person

struct

{

Name

string

Gender

string

Age

int}

func

main()

{

a

:=

new(Person)

a.Name

=

"張三"

a.Gender

=

"男"

a.Age

=

25new關(guān)鍵字的應(yīng)用……新建一個(gè)結(jié)構(gòu)指針(引用)并分配空間此時(shí)的a是指針類型的變量type

Person

struct

{

Name

string

Gender

string

Age

int}

func

main()

{

a

:=

new(Person)

a.Name

=

"張三"

a.Gender

=

"男"

a.Age

=

25

fmt.Println(a)new關(guān)鍵字的應(yīng)用……新建一個(gè)結(jié)構(gòu)指針(引用)并分配空間,此時(shí)的a是指針類型的變量將輸出&{張三男25}目錄導(dǎo)航3.73.83.9……自定義數(shù)據(jù)類型面向?qū)ο缶幊虠l件判斷與分支……Contents面向?qū)ο缶幊痰幕靖拍顚?duì)象是對(duì)事物進(jìn)行分類的一種方法一般來說,對(duì)象類表示分類,例如“人”、“男人”;對(duì)象實(shí)例(有時(shí)候也直接簡稱為對(duì)象)代表對(duì)象類中的具體個(gè)體,例如“小明”、“張三”等每個(gè)對(duì)象類都可以包含屬性和方法,例如“人”都有“名字”這個(gè)屬性,也有“走路”這個(gè)方法,而具體對(duì)象實(shí)例“張三”的名字屬性的值就是“張三”面向?qū)ο缶幊淌窃诰幊痰脑O(shè)計(jì)和編碼階段,把所有涉及到的內(nèi)容均看作一個(gè)個(gè)“對(duì)象”來處理的方法論Go語言中面向?qū)ο蟮膶?shí)現(xiàn)方式:聲明對(duì)象類數(shù)據(jù)type

Person

struct

{

Name

string

Gender

string

Age

int}先定義數(shù)據(jù)結(jié)構(gòu),也就是定義對(duì)象類的名稱(Person)和對(duì)象類的成員變量們func

(p

*Person)

say(sentence

string)

{

fmt.Print(p.Name,

"

says

",

sentence,

"\n")}

func

(v

Person)

getAge()

int

{

return

v.Age}定義成員函數(shù)再定義對(duì)象類的方法,也就是定義對(duì)象類的成員函數(shù)們func

main()

{

person1

:=

&Person{Name:

"Tom",

Gender:

"male",

Age:

25}

person1.say("Hello!")

person1.Name

=

"Jerry"

person1.say("Hello!")}Go語言中面向?qū)ο蟮膶?shí)現(xiàn)方式3然后就可以創(chuàng)建對(duì)象實(shí)例,訪問對(duì)象類的成員變量,或者調(diào)用對(duì)象類的成員函數(shù)Go語言中面向?qū)ο蟮膶?shí)現(xiàn)方式3func

(p

*Person)

say(sentence

string)

{

fmt.Print(p.Name,

"

says

",

sentence,

"\n")}

func

(v

Person)

getAge()

int

{

return

v.Age}成員函數(shù)定義在指針和值上的區(qū)別一般來說,需要改變對(duì)象數(shù)據(jù)的函數(shù),應(yīng)該定義在指針上,否則定義在值上目錄導(dǎo)航3.83.93.10……面向?qū)ο缶幊虠l件判斷與分支循環(huán)……Contents

a

:=

10

b

:=

15

if

a

>

b

{

fmt.Println(a

-

b)

}

else

{

fmt.Println(b

-

a)

}基本的條件判斷分支

a

:=

10

b

:=

10

if

a

>

b

{

fmt.Println(a

-

b)

}

else

if

a

<

b

{

fmt.Println(b

-

a)

}

else

{

fmt.Println("a

=

b")

}多重分支

a

:=

10

b

:=

15

if

a

>

b

{

fmt.Println("a

>

b")

fmt.Println(a

-

b)

}

else

{

if

a

==

b

{

fmt.Println("a

=

b")

}

else

{

fmt.Println(b

-

a)

}

}嵌套分支目錄導(dǎo)航3.93.103.11……條件判斷與分支循環(huán)并發(fā)處理:Go例程(goroutine)……Contents

for

i

:=

0;

i

<

10;

i

++

{

fmt.Println(i)

}基本的循環(huán)經(jīng)典的“三段for循環(huán)”

for

i

:=

0;

i

<

10;

i

++

{

fmt.Println(i)

}基本的循環(huán)經(jīng)典的“三段for循環(huán)”,輸出:

i

:=

0

for

i

<

10

{

fmt.Println(i)

i++

}for循環(huán)的變體

a

:=

[]string{"abc",

"def",

"zzz"}

for

i,

v

:=

range

a

{

fmt.Println(i,

"

:

",

v)

}

for循環(huán)結(jié)合range遍歷數(shù)組

a

:=

[]string{"abc",

"def",

"zzz"}

for

i,

v

:=

range

a

{

fmt.Println(i,

"

:

",

v)

}

for循環(huán)結(jié)合range遍歷數(shù)組或切片(slice)

a

:=

[]string{"abc",

"def",

"zzz"}

for

i

:=

0;

i

<

3;

i++

{

v

:=

a[i]

fmt.Println(i,

"

:

",

v)

}

等價(jià)的三段for循環(huán)

a

:=

map[string]int{"Number1":

1,

"Number2":

2,

"Number3":

4}

for

k,

v

:=

range

a

{

fmt.Println(k,

"

:

",

v)

}

for循環(huán)結(jié)合range遍歷映射(map)目錄導(dǎo)航3.103.113.12……循環(huán)并發(fā)處理:Go例程(goroutine)注釋……Contentsfunc

routine1(index

int)

{

for

i

:=

0;

i

<

10000000000;

i++

{

fmt.Println(index,

":

",

i)

}}

func

main()

{

go

routine1(1)

go

routine1(2)

for

i

:=

0;

i

<

10000000000;

i++

{

fmt.Println("0:

",

i)

}}Goroutine——Go語言特色的并發(fā)方式func

routine1(index

int)

{

for

i

:=

0;

i

<

10000000000;

i++

{

fmt.Println(index,

":

",

i)

}}

func

main()

{

go

routine1(1)

go

routine1(2)

for

i

:=

0;

i

<

10000000000;

i++

{

fmt.Println("0:

",

i)

}}Goroutine——Go語言特色的并發(fā)方式輕量級(jí),啟動(dòng)快于一般的線程占用系統(tǒng)資源少,輕易啟動(dòng)上千個(gè)goroutine可以使用原生的“通道”來避免并發(fā)沖突支持透明的防線程阻塞機(jī)制Goroutine的特點(diǎn)目錄導(dǎo)航3.113.123.13……并發(fā)處理:Go例程(goroutine)注釋程序編譯或運(yùn)行時(shí)出現(xiàn)錯(cuò)誤怎么辦……Contents基本的單行注釋

h

:=

175

//

h代表身高

//

下面這句話輸出的是標(biāo)準(zhǔn)體重

fmt.Println((h

-

80)

*

0.7)多行注釋

a

:=

18

for

a

>

0

{

fmt.Println("a=",

a)

a

=

a

-

1

/*

a

=

a

+

2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論