zoukankan      html  css  js  c++  java
  • IDL 结构体

    1.创建结构体

      (1) 命名结构体

      创建具有两个成员变量A、B的命名为str1的结构体

    IDL> struct1={str1,a:1,b:2}
    IDL> help,struct1,/structure
    ** Structure STR1, 2 tags, length=4, data length=4:
       A               INT              1
       B               INT              2

      结构体struct1的基本信息:名称为str1,成员变量为两个:成员A整型变量值为1;成员B整型变量值为2

      命名结构体支持结构体继承,如

    IDL> struct2={str2,inherits str1,c:3}
    IDL> help,struct2,/str
    ** Structure STR2, 3 tags, length=6, data length=6:
       A               INT              0
       B               INT              0
       C               INT              3

      可以用replicate函数创建结构体数组,调用方法如下

    IDL> structs=replicate(struct2,10)
    IDL> help,structs
    STRUCTS         STRUCT    = -> STR2 Array[10]

      (2) 匿名结构体

      与创建命名结构类似,区别在于创建时不需要赋予结构体名

    IDL> person={name:'jack',country:'USA',work:'Esri'}
    IDL> help,person
    ** Structure <c9fa750>, 3 tags, length=48, data length=48, refs=1:
       NAME            STRING    'jack'
       COUNTRY         STRING    'USA'
       WORK            STRING    'Esri'

    2.访问结构体

    IDL> print,person.name
    jack
    IDL> print,person.(0)
    jack

      结构体一旦创建,其成员变两个数与数据类型将无法修改,赋值操作时结构体成员变量会自动进行类型转换,示例代码如下

    IDL> person.name=indgen(3)
    % Expression must be a scalar in this context: <STRING    Array[3]>.
    % Execution halted at: $MAIN$          
    IDL> person.name=678
    IDL> help,person.name
    <Expression>    STRING    = '     678'

    3.结构体操作函数

    结构体操作函数
    函数名 用途
    create_struct() 根据给定名字和值创建结构体,并能连接结构体
    help,***,/Struct 返回输入结构体的相关信息
    n_tags 返回结构体中的成员个数
    tag_names() 返回结构体成员的名字

      

    以结构体遍历功能为例

    pro traverse_struct
      ;初始化结构体
      struct1={a:1,b:2,c:3,d:'a'}
      ;获取成员变两个数
      tagnumber=n_tags(struct1)
      ;获取成员名字
      tagnames=tag_names(struct1)
      ;依次输出成员变量
      for i=0,tagnumber -1 do begin
        print,'Name:',tagnames[i],'value:',struct1.(i)
      endfor
    end
  • 相关阅读:
    TensorFlow入门:debug方法
    Firefox 隐藏提示:正在安装组件,以便播放此页面的音频或视频
    CentOS 6.5挂载windows NTFS硬盘
    Linux中执行shell脚本
    CentOS opera 浏览器
    CentOS 更新为网易yum源
    Centos下替换yum源为阿里云源
    CentOS常用基础命令大全
    Linux CentOS删除或重命名文件夹和文件的办法
    给Centos7装上Chromium
  • 原文地址:https://www.cnblogs.com/wintertone/p/6610448.html
Copyright © 2011-2022 走看看