采集数据

import cPickle
import gzip
import math
import maya.cmds as cmds
import os 
#import numpy as np 
 
#python 数组使用[] 号码
#第0列
samA=[]
samA=['sam_phoneme_A','charlie_phoneme_aa','dilys_phoneme_a','Hannah_phoneme_A','james_phoneme_A','Joe_phoneme_A',
'mandy_phoneme_a','norman_AHA','sarah_phoneme_AHA','Steele_phoneme_A','Elvis_AAA','Lizzie_phoneme_A','Trevor_AHA','Mike_AHA','Arnold_phoneme_A','sam_phoneme_A','Ben_phoneme_A','Boyce_A','Bronwyn_AHA','Derek_AHA','Ellie_phoneme_A']
#第1列
samE=[]
samE=['sam_phoneme_E','charlie_phoneme_ee','dilys_phoneme_e','Hannah_phoneme_E','james_phoneme_E','Joe_phoneme_E','mandy_phoneme_e ','norman_EEE','sarah_phoneme_EEE',
'Steele__phoneme_EE','Elvis_EEE','Lizzie_phoneme_E ','Trevor_EEE','Mike_EEE','Arnold_phoneme_E','sam_phoneme_E','','Ben_phoneme_E','Boyce_EEE','Bronwyn_EEE','Derek_EEE','Ellie_phoneme_E']
#第2列
samBMP=[]
samBMP=['sam_phoneme_m','charlie_phoneme_bm','dilys_phoneme_b','Hannah_phoneme_m','james_phoneme_BM','Joe_phoneme_m','mandy_phoneme_m','norman_BMP','sarah_phoneme_BMP',
'Steele_phoneme_BPM','Elvis_BMP','Lizzie_phoneme_m','Trevor_BMP','Mike_BMP','Arnold_phoneme_m','sam_phoneme_m','Ben_phoneme_m','Boyce_BMP','Bronwyn_BM','Derek_BMP','Ellie_phoneme_m']
#第3列
samB_M_P=[]
samB_M_P=['sam_phoneme_p','charlie_phoneme_p','dilys_phoneme_p','Hannah_phoneme_p','james_phoneme_P','Joe_phoneme_p','mandy_phoneme_p','norman_PPos|norman_OOO','sarah_phoneme_BMP',
'Steele_phoneme_P','Elvis_PPP','Lizzie_phoneme_p','Trevor_BMP','Mike_P','Arnold_phoneme_p','sam_phoneme_p','Ben_phoneme_p','Boyce_BMP','Bronwyn_P','Derek_BMP','Ellie_phoneme_p']
#第4列
samOOO=[]
samOOO=['sam_phoneme_O','charlie_phoneme_oo','dilys_phoneme_o','Hannah_phoneme_O','james_phoneme_O','Joe_phoneme_O ','mandy_phoneme_o','norman_OOOPos|norman_OOO','sarah_phoneme_OOO',
'Steele_phoneme_O','Elvis_OOO','Lizzie_phoneme_O','Trevor_OOO','Mike_OOO','Arnold_phoneme_O','sam_phoneme_O','Ben_phoneme_O','Boyce_OOO','Bronwyn_O','Derek_OOO','Ellie_phoneme_O']
#第5列
samFFV=[]
samFFV=['sam_phoneme_F','charlie_phoneme_vf','dilys_phoneme_v','Hannah_phoneme_F','james_phoneme_F','Joe_phoneme_F','mandy_phoneme_f','norman_FFV','sarah_phoneme_FFV','Steele_phoneme_VF',
'Elvis_FFV','Lizzie_phoneme_F','Trevor_FFV','Mike_FFV','Arnold_phoneme_F','sam_phoneme_F','Ben_phoneme_F','Boyce_FVV','Bronwyn_FFV','Derek_FFV','Ellie_phoneme_F']
#第6列
samCGKZS=[]
samCGKZS=['sam_phoneme_g','charlie_phoneme_cgk','dilys_phoneme_c','Hannah_phoneme_g','james_phoneme_SG','Joe_phoneme_g','mandy_phoneme_g','norman_CGKZS','sarah_phoneme_Z','Steele_phoneme_CGKZS',
'Elvis_SSZ','Lizzie_phoneme_g','Trevor_CGKZS','Mike_SZZ','Arnold_phoneme_g','sam_phoneme_g','Ben_phoneme_g','Boyce_SZZ','Bronwyn_SZZ','Derek_CGKZS','Ellie_phoneme_g']
#第7列
samIII=[]
samIII=['sam_phoneme_I','charlie_phoneme_iii','dilys_phoneme_i','Hannah_phoneme_I','james_phoneme_I','Joe_phoneme_I','mandy_phoneme_i','norman_III','sarah_phoneme_III','Steele_phoneme_I','Elvis_III',
'Lizzie_phoneme_I','Trevor_III','Mike_III','Arnold_phoneme_I','sam_phoneme_I','Ben_phoneme_I','Boyce_III','Bronwyn_III','Derek_III','Ellie_phoneme_I']
#第8列
samUWQ=[]
samUWQ=['sam_phoneme_U','charlie_phoneme_uwo','dilys_phoneme_u','Hannah_phoneme_U','james_phoneme_U','Joe_phoneme_U','mandy_phoneme_u','norman_UWQ','sarah_phoneme_UWQ',
'Steele_phoneme_QOO','Elvis_UWQ','Lizzie_phoneme_U','Trevor_UWQ','Mike_UWQ','Arnold_phoneme_U','sam_phoneme_U','Ben_phoneme_U','Boyce_UWQ','Bronwyn_UWQ','Derek_UWQ','Ellie_phoneme_U']
#第9列
samDDJ=[]
samDDJ=['sam_phoneme_d','charlie_phoneme_dj','dilys_phoneme_d','Hannah_phoneme_d','james_phoneme_D','Joe_phoneme_d','mandy_phoneme_d','norman_DDJ','sarah_phoneme_DDJ','Steele_phoneme_DJ',
'Elvis_DDJ','Trevor_DDJ','Mike_DDJ','Arnold_phoneme_d','sam_phoneme_d','Ben_phoneme_d','Boyce_DDJ','Bronwyn_DDJ','Derek_DDJ','Ellie_phoneme_d']
#第10列
samLH=[]
samLH=['sam_phoneme_L','charlie_phoneme_lh','dilys_phoneme_l','Hannah_phoneme_L','james_phoneme_L','Joe_phoneme_L','mandy_phoneme_l','norman_LH','sarah_phoneme_LH','Steele_phoneme_LH',
'Elvis_LH','Trevor_LH','Mike_LH','Arnold_phoneme_L','sam_phoneme_L','Ben_phoneme_L','Boyce_LH','Bronwyn_LH','Derek_LH','Ellie_phoneme_L']
#第11列
samCH=[]
samCH=['charlie_phoneme_ch','Charactor_dilys_phonemech','mandy_phoneme_ch','norman_CH','Steele_phoneme_SRCHTH','Mike_CH','Derek_CH ']
#第12列
samTH=[]
samTH=['sam_phoneme_TH','Hannah_phoneme_TH','james_phoneme_TH','Joe_phoneme_TH','sarah_phoneme_SZZ','Steele_phoneme_SRCHTH','Elvis_SHH',
'Trevor_TH','Arnold_phoneme_TH','sam_phoneme_TH ','Ben_phoneme_TH','Boyce_TH','Bronwyn_TH','Ellie_phoneme_TH']

#第13列 双属性
samup=[]
samup=['sam_mouth_up','Arnold_mouth_up','Arnold_mouth_up','sam_mouth_up','Ben_mouth_up','Boyce_c_mouth_up','Gareth_mouth_jaw','Ellie_mouth_up',
'dilys_mouth_jaw','charlie_mouh_jaw','Derek_jaw','Bronwyn_jaw','Elvis_mouth_jaw','Charactor_Controller','Hannah_mouth_up','Elvis_mouth_jaw',
'sam_mouth_up','norman_jaw','Mrschen_mouth_up','sam_mouth_up','mandy_jaw','Lizzie_mouth_up','sam_mouth_up','Joe_mouth_up','james_jaw','sarah_jaw','Steele_jaw','tom_jaw']
#第14列 双属性
samEmotion=[]
samEmotion=['Charlie_mouth_em','Helen_emotion','Boyce_mouth_frown_smail','Elvis_emotion','Ellie_Ellie_emotion','dilys_mouth_em','Bronwyn_Bronwyn_emotion',
'Hannah_emotion','Gareth_emotion','Elvis_emotion','sam_mouth_frown_smile','norman_emotion','Mrschen_mouth_frown_smile','Moose_Mouth_R_Smile',
'Mike_emotion','Mandy_Mouth_SF','mandy_jaw ','Lizzie_emotion','LilyChen_mouth_smile','Joe_emotion','James_emotion','sarah_emotion','Steele_phoneme_emotion','tom_emotion','Trevor_emotion']
#第15列 双属性
samJaw_fronted_back_close=[]
samJaw_fronted_back_close=['Hannah_back_front','Elvis_J_F_B_C','charlie_mouh_fron_back','Helen_fronted_back','Bronwyn_Bronwyn_jaw_fronted_back_close','Helen_fronted_back','Gareth_J_F_B_C',
'Elvis_J_F_B_C','sam_jaw_front_back_close','norman_jaw_fronted_back_close','Mrschen_jaw_front_back_close','mandy_jaw','Mike_jaw_fronted_back_close',
'Lizzie_Jaw_front_back','Joe_jaw_front_back','James_jaw_front_back','sarah_jaw_front_back','Steele_jaw_fronted_back_close','Bronwyn_Bronwyn_jaw_fronted_back_close','tom_jaw_fronted_back_close','Trevor_J_F_B_C']
#第16列 双属性
sam_mouth_move=[]
sam_mouth_move=['Character_Mouth_Move','Elvis_move','Mrschen_mouth_move','LilyChen_mouth_move','sam_mouth_move','Charlie_mouth_move','Elvis_move','Bronwyn_jaw_fronted_back_close','tom_sneer','Steele_neer','Helen_move',
'Hannah_mouth_move','Gareth_move','norman_mouth_move','Mrschen_mouth_move','sam_mouth_move','Trevor_A_N']

#其中samA代表着第一列,而时间贞代表着第一行,我们逐个逐帧的寻找

#确定有多少帧,就确定有多少行
#cmds.currentTime( 152 )

#用下面数组同上面的代表数组做交集,如果有交集那么取出交集的数值,如果没有交集则用0来补全
hannahface=[]
hannahface=['Hannah_phoneme_p','Hannah_phoneme_m','Hannah_phoneme_d','Hannah_phoneme_g','Hannah_mouth_up','Hannah_jaw2','Hannah_up','Hannah_dnPos|Hannah_dn','Hannah_phoneme_A',
'Hannah_phoneme_E','Hannah_phoneme_O','Hannah_phoneme_F','Hannah_phoneme_I','Hannah_phoneme_U','Hannah_phoneme_L','Hannah_phoneme_TH','Hannah_brow_l_updn','Hannah_brow_r_updn',
'Hannah_brow_r_midupdn','Hannah_brow_l_midupdn','Hannah_brow_l_outupdn','Hannah_brow_r_outupdn','Hannah_brow_r_frown','Hannah_brow_l_frown','Hannah_Ask','Hannah_dnPos1|Hannah_dn',
'Hannah_dnPos2|Hannah_dn','Hannah_Eye_U','Hannah_Eye_L','Hannah_uprlip','Hannah_lwrlip','Hannah_emotion','Hannah_wide','Hannah_Cheek','Hannah_back_front','Hannah_sneer','Hannah_mouth_move',
'Hannah_tongueCluster0Con','Hannah_tongueCluster1Con','Hannah_tongueCluster2Con','Hannah_teethupCon','Hannah_teethdownCon']





start =136
end =185
k=end-start
print k 

Hang=50  #k
Lie =21
myListA = [ [ 0 for L in range(0,Lie)] for H in range(0,Hang) ] 
print( myListA )

#j=141
t=0
for j in range(start,end):
    cmds.currentTime(j)
    print j
    print t
    #t=t+1
    #print myList[t]
    samAName = [val for val in samA if val in hannahface]
    #print samAName
    if samAName:
        samANameAttr=cmds.getAttr(str(samAName[0])+'.ty')
        print samANameAttr
        myListA[t][0] = samANameAttr
        #print myListA[t][0]
    #求第 1 列属性名称
    samEName = [val for val in samE if val in hannahface]
    print samEName
    if samEName:
        samENameAttr=cmds.getAttr(str(samEName[0])+'.ty')
        print samENameAttr
        myListA[t][1] = samENameAttr
    #求第 2 列属性名称
    samBMPName = [val for val in samBMP if val in hannahface]
    print samBMPName
    if samBMPName:
        samBMPNameAttr=cmds.getAttr(str(samBMPName[0])+'.ty')
        print samBMPNameAttr
        myListA[t][2] = samBMPNameAttr
    #求第 3 列属性名称
    samB_M_PName = [val for val in samB_M_P if val in hannahface]
    print samB_M_PName
    if samB_M_PName:
        samB_M_PNameAttr=cmds.getAttr(str(samB_M_PName[0])+'.ty')
        print samB_M_PNameAttr
        myListA[t][3] = samB_M_PNameAttr
    #求第 4 列属性名称
    samOOOName = [val for val in samOOO if val in hannahface]
    print samOOOName
    if samOOOName:
        samOOONameAttr=cmds.getAttr(str(samOOOName[0])+'.ty')
        print samOOONameAttr
        myListA[t][4] = samOOONameAttr
    #求第 5 列属性名称
    samFFVName = [val for val in samFFV if val in hannahface]
    print samFFVName
    if samFFVName:
        samFFVNameAttr=cmds.getAttr(str(samFFVName[0])+'.ty')
        print samFFVNameAttr
        myListA[t][5] = samFFVNameAttr
    #求第 6 列属性名称
    samCGKZSName = [val for val in samCGKZS if val in hannahface]
    print samCGKZSName
    if samCGKZSName:
        samCGKZSNameAttr=cmds.getAttr(str(samCGKZSName[0])+'.ty')
        print samCGKZSNameAttr
        myListA[t][6] = samCGKZSNameAttr
    #求第 7 列属性名称
    samIIIName = [val for val in samIII if val in hannahface]
    print samIIIName
    if samIIIName:
        samIIINameAttr=cmds.getAttr(str(samIIIName[0])+'.ty')
        print samIIINameAttr
        myListA[t][7] = samIIINameAttr
    #求第 8 列属性名称
    samUWQName = [val for val in samUWQ if val in hannahface]
    print samUWQName
    if samUWQName:
        samUWQNameAttr=cmds.getAttr(str(samUWQName[0])+'.ty')
        print samUWQNameAttr
        myListA[t][8] = samUWQNameAttr
    #求第 9 列属性名称
    samDDJName = [val for val in samDDJ if val in hannahface]
    print samDDJName
    if samDDJName:
        samDDJNameAttr=cmds.getAttr(str(samDDJName[0])+'.ty')
        print samDDJNameAttr
        myListA[t][9] = samDDJNameAttr
    #求第 10 列属性名称
    samLHName = [val for val in samLH if val in hannahface]
    print samLHName
    if samLHName:
        samLHNameAttr=cmds.getAttr(str(samLHName[0])+'.ty')
        print samLHNameAttr
        myListA[t][10] = samLHNameAttr
    #求第 11 列属性名称
    samCHName = [val for val in samCH if val in hannahface]
    #如果存在
    print samCHName
    if samCHName:
        samCHNameAttr=cmds.getAttr(str(samCHName[0])+'.ty')
        print samCHNameAttr
        myListA[t][11] = samCHNameAttr
    #求第 12 列属性名称
    samTHName = [val for val in samTH if val in hannahface]
    print samTHName
    if samTHName:
        samTHNameAttr=cmds.getAttr(str(samTHName[0])+'.ty')
        print samTHNameAttr
        myListA[t][12] = samTHNameAttr
    #求第 13 14 列属性名称
    samupName = [val for val in samup if val in hannahface]
    print samupName
    if samupName:
        samupNameAttrty=cmds.getAttr(str(samupName[0])+'.ty')
        samupNameAttrtx=cmds.getAttr(str(samupName[0])+'.tx')
        print samupNameAttrty
        print samupNameAttrtx
        myListA[t][13] = samupNameAttrty
        myListA[t][14] = samupNameAttrtx
    #求第 15 16 列属性名称
    samEmotionName = [val for val in samEmotion if val in hannahface]
    print samEmotionName
    if samEmotionName:
        samEmotionNameAttrty=cmds.getAttr(str(samEmotionName[0])+'.ty')
        samEmotionNameAttrtx=cmds.getAttr(str(samEmotionName[0])+'.tx')
        print samEmotionNameAttrty
        print samEmotionNameAttrtx
        myListA[t][15] = samEmotionNameAttrty
        myListA[t][16] = samEmotionNameAttrtx
    #求第 17 18 列属性名称
    samJaw_fronted_back_closeName = [val for val in samJaw_fronted_back_close if val in hannahface]
    print samJaw_fronted_back_closeName
    if samJaw_fronted_back_closeName:
        samJaw_fronted_back_closeNameAttrty=cmds.getAttr(str(samJaw_fronted_back_closeName[0])+'.ty')
        samJaw_fronted_back_closeNameAttrtx=cmds.getAttr(str(samJaw_fronted_back_closeName[0])+'.tx')
        print samJaw_fronted_back_closeNameAttrty
        print samJaw_fronted_back_closeNameAttrtx
        myListA[t][17] = samJaw_fronted_back_closeNameAttrty
        myListA[t][18] = samJaw_fronted_back_closeNameAttrtx
    #求第 19 20 列属性名称
    sam_mouth_moveName = [val for val in sam_mouth_move if val in hannahface]
    print sam_mouth_moveName
    if sam_mouth_moveName:
        sam_mouth_moveNameAttrty=cmds.getAttr(str(sam_mouth_moveName[0])+'.ty')
        sam_mouth_moveNameAttrtx=cmds.getAttr(str(sam_mouth_moveName[0])+'.tx')
        print sam_mouth_moveNameAttrty
        print sam_mouth_moveNameAttrtx
        myListA[t][19] = sam_mouth_moveNameAttrty
        myListA[t][20] = sam_mouth_moveNameAttrtx
    t=t+1        
    
    

print 'Than by having a play with it'
t=0
for j in range(start,end):
    print t
    print myListA[t]
    t=t+1 
    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值