enum

RUST 0x05 Enum

一个人想着一个人 提交于 2020-01-28 07:49:02
RUST 0x05 Enum 1 定义一个Enum 如: enum IpAddrKind { V4, V6, } enum的值只能是它的变量中的一个。 Enum Values 可以像这样创建实例: let four = IpAddrKind::V4; let six = IpAddrKind::V6; enum里的变量是在其namespace下的,所以要用 :: 。这时 IpAddrKind::V4 和 IpAddrKind::V6 是同一种类型—— IpAddrKind ,所以可以像这样: fn route(ip_kind: IpAddrKind) { route(IpAddrKind::V4); route(IpAddrKind::V6); 可以这样将enum和struct组合使用: enum IpAddrKind { V4, V6, } struct IpAddr { kind: IpAddrKind, address: String, } let home = IpAddr { kind: IpAddrKind::V4, address: String::from("127.0.0.1"), }; let loopback = IpAddr { kind: IpAddrKind::V6, address: String::from("::1"), };

v4l2的学习建议和流程解析

给你一囗甜甜゛ 提交于 2020-01-27 19:06:43
  v4l2,一开始听到这个名词的时候,以为又是一个很难很难的模块,涉及到视频的处理,后来在网上各种找资料后,才发现其实v4l2已经分装好了驱动程序,只要我们根据需要调用相应的接口和函数,从而实现视频的获取和处理。只要认真的看几篇文章就对v4l2有一定的了解了,由于是第一次接触,网上的资料良莠不齐,难得可以找到几篇自己感觉很不错的。记录下来:(没必要看太多,很多都是一样的意思) http://www.embedu.org/Column/Column320.htm 这篇是不错的介绍,很讨厌有弹窗 http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.html 这个可以作为第一篇来看,博主整理的不错 http://blog.chinaunix.net/uid-11765716-id-2855735.html 这篇也比较详细 http://blog.csdn.net/ddddwant/article/details/8475211 这篇提到的问题和我遇到的一样,花屏了,内存没有读取好 http://my.oschina.net/u/1024767/blog/210801#OSC_h2_14 对capture.c文件的解读 http://blog.csdn.net/g_salamander/article/details

Java枚举类的高级用法说明

泪湿孤枕 提交于 2020-01-27 02:49:38
public enum Color{ RED, BLUE, BLACK, YELLOW, GREEN } Color c = Color.RED; 如上,是我们通常使用枚举类型的常用方式。 从编写方式上看,enum很像是特殊的class,实际上enum声明定义的类型就是一个类。而这些类都是类库中Enum类的子类。查看编译之后的字节码文件可以发现enum类型被单独编译成了字节码文件Color.class。 Compiled from "Color.java" public final class Color extends java.lang.Enum<Color> { public static final Color RED; public static final Color BLUE; public static final Color BLACK; public static final Color YELLOW; public static final Color GREEN; public static Color[] values(); public static Color valueOf(java.lang.String); static {}; } 由上可知: 1. enum类型是一个不可以被继承的final类。其枚举值都是Color类型的类静态常量

枚举

僤鯓⒐⒋嵵緔 提交于 2020-01-26 19:53:30
枚举的遍历 #include <stdio.h> enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN //如果没有给赋值,就会按照顺序赋值 } day; // 表示 定义了一个枚举类型 enum Day ,同时定义了一个变量 day(类型是 enum DAY) int main() { // 遍历枚举元素, 枚举的每个元素都对应数值 //day++ 会给出警告,但是可以运行 for (day = MON; day <= SUN; day++) { //SUN = 12 printf("枚举元素:%d \n", day); // 1, 2, 3, 4,5,6,7 } //day = FRI; //printf("%d", day); // 10 getchar(); return 0; } #include <stdio.h> void main() { enum SEASONS {SPRING=1, SUMMER, AUTUMN, WINTER}; //定义枚举类型 enum SEASONS enum SEASONS season;//定义了一个枚举类型变量 season(类型 enum SEASONS ) printf("请输入你喜欢的季节: (1. spring, 2. summer, 3. autumn 4 winter): ");

c语言中enum类型的用法

戏子无情 提交于 2020-01-26 02:51:48
11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。 应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。 11.10.1 枚举类型的定义和枚举变量的说明 1. 枚举的定义 枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 }; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。 例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。 2. 枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。 设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mou,tue,wed,thu,fri,sat }; enum weekday a,b,c; 或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c; 或者为: enum {

Erlang实战:并行枚举排序

て烟熏妆下的殇ゞ 提交于 2020-01-25 05:13:13
  这是海量数据的时代!互联网每天产生的数据量远远超出了我们所能想象的范围,无论是国外的Facebook、Twitter,还是国内的微博、人人,还有各种电商们,这些互联网企业在数据上是富有的,它们掌握着海量的用户数据,同时它们也需要对这些海量数据进行分析和处理。我们以前的串行化算法似乎显得力不从心,一个是计算机本身就设计为多核的,它们存在并行化问题;另一方面,更多的计算机加入到并行的行列,并行化正成为一种潮流和趋势,因为它们能用空间换取时间和性能,或者说用更多的机器来进行分析计算。   我知道的常用的并行计算工具大致有三种:MapReduce、MPI,还有就是本文讨论的Erlang。MapReduce最早是google设计并实施的,现在已经成为云计算中的一个火热的技术,它通过一个映射(Map)和规约(Reduce)来进行并行数据处理,实际上它是一个实时批处理再加上一些容错处理机制来保证系统的性能和可靠性;MPI我不太熟悉,它是一个库,不是一门语言,一般与C/FORTRAN结合使用;Erlang是一个基于消息传递的并发编程语言,正因为它是基于消息的,因此没有共享内存和锁机制,因此Erlang比较简单,它是函数型编程语言,我们在编写程序时写的都是函数。   下面我将通过一个排序实例:枚举排序来讲述Erlang并行编程!   实战:并行枚举排序   我们先来看看其概念:枚举排序也叫秩排序

枚举(Enum)使用总结

六月ゝ 毕业季﹏ 提交于 2020-01-24 20:48:19
2.枚举(Enum)使用总结 发布时间:2010-11-14 上一篇文章: .net 与 javascript脚本的几种交互方法 下一篇文章: 关于在利用FileSystemWatcher进行文件监控产生异常的疑问 Body"> 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,性别只有男跟女等等。如果把这些量说明为整型、字符型或其它类型显然是不妥当的。为此,C#提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。 1、定义枚举 定义枚举很简单,直接使用enum关键字声明即可,例如定义性别的枚举,性别只有男和女 public enum Sex { 女 = 0,//’0‘是’女‘对应的内部表示,也可以说是女的Value,’女‘是外部表示,也可以说是Name 男 = 1, } 2.使用枚举 代码 1 public void UseEnum() 2 { 3 //获取枚举对应的值 4 int enumValue = (int)Sex.男;//enumValue的值则为 1 5 6 //获取枚举的名称 7 string enumText = Sex.男.ToString();/

Java 枚举

那年仲夏 提交于 2020-01-22 17:26:59
Java 枚举 目录 Java 枚举   知识点   概念   枚举的方法   枚举的特性   枚举的应用场景   EnumSet和EnumMap Java 枚举 知识点 概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法, 枚举值默认为从0开始的有序数值 。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2 。 枚举的好处 :可以将常量组织起来,统一进行管理。 枚举的典型应用场景 :错误码、状态机等。 枚举类型的本质 尽管 enum 看起来像是一种新的数据类型,事实上, enum是一种受限制的类,并且具有自己的方法 。 创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum 。 java.lang.Enum 类声明 public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... } 枚举的方法 在enum中,提供了一些基本方法: values() :返回 enum 实例的数组

《Linux Device Drivers》第十五章 内存映射和DMA——note

微笑、不失礼 提交于 2020-01-20 03:04:37
简单介绍 很多类型的驱动程序编程都须要了解一些虚拟内存子系统怎样工作的知识 当遇到更为复杂、性能要求更为苛刻的子系统时,本章所讨论的内容迟早都要用到 本章的内容分成三个部分 讲述mmap系统调用的实现过程 讲述怎样跨越边界直接訪问用户空间的内存页 讲述了直接内存訪问(DMA)I/O操作,它使得外设具有直接訪问系统内存的能力 Linux的内存管理 地址类型 Linux是一个虚拟内存系统,这意味着用户程序所使用的地址与硬件使用的物理地址是不等同的 有了虚拟内存,在系统中执行的程序能够分配比物理内存很多其它的内存,甚至一个单独的进程都能拥有比系统物理内存很多其它的虚拟地址空间 以下是一个Linux使用的地址类型列表 用户虚拟地址 这是在用户空间程序所能看到的常规地址 物理地址 该地址在处理器和系统内存之间使用 总线地址 该地址在外围总线和内存之间使用,通常它们与处理器使用的物理地址同样 内核逻辑地址 内核逻辑地址组成了内核的常规地址空间 在大多数体系架构中。逻辑地址和与其相关联的物理地址不同,只在它们之间存在一个固定的偏移量 kmalloc返回的内存就是内核逻辑地址 内核虚拟地址 和内核逻辑地址的同样之处在于。它们都将内核空间的地址映射到物理地址上 内核虚拟地址与物理地址的映射不必是线性的一对一的 全部的逻辑地址都是内核虚拟地址。可是非常多内核虚拟地址不是逻辑地址

Thinking in java学习笔记16:第十九章(枚举类型)

好久不见. 提交于 2020-01-19 17:35:10
1.基本enum特性 1.1首先介绍了3个方法 values():获取enum实例的数组 ordinal():获取enum实例在声明时的次序 name() :获取enum实例声明时的名称 public class EnumTest { public static void main(String[] args){ sardine[] sardineList= sardine.values(); Integer order= sardineList[1].ordinal(); String name=sardineList[1].name(); for(sardine s:sardineList) { System.out.println("内容:"+s); } System.out.println("次序:"+order); System.out.println("实例名称:"+name); } } enum sardine{ A,B,C } 1.2静态导入用于enum import static xx.xx.xx.xxenum.*; 这样就不需使用enum类型再修饰enum实例。 2.向enum增加新方法 enum除了不能继承enum外,我们可以把它看成一个常规的类。 所以enum中也是可以添加方法的。 public class EnumTest { public static