c++: 在不涉及到内存管理下,总体感觉很爽,又因为是unix自带编译器。非常爽。唯一一点就是枚举类型中的枚举值是好像是全局变量名。搞得枚举值命名很长。 语法基本没有太多停顿 ,这个例子中所涉及的语法部分和c#,java 很像。
#include <iostream> using namespace std; enum enum_op { enum_op_add, enum_op_minus, enum_op_time, enum_op_divide }; int NumberCaculate(int a,int b,enum_op op) { int ret=0; switch (op) { case enum_op_add: { ret=a+b; break; } case enum_op_minus: { ret=a-b; break; } case enum_op_time: { ret=a*b; break; } case enum_op_divide: { ret=a/b; } } return ret; } template<typename T> T NumberCaculateFull(T a,T b,enum_op op) { T ret=0; switch (op) { case enum_op_add: { ret=a+b; break; } case enum_op_minus: { ret=a-b; break; } case enum_op_time: { ret=a*b; break; } case enum_op_divide: { ret=a/b; } } return ret; } int main() { cout<<"hello,world"<<endl; cout<<NumberCaculate(1,3,enum_op_minus)<<endl; cout<<NumberCaculateFull<float>(1.2,3.3,enum_op_time)<<endl; }
object-c:因为有xcode这个地球第二的编辑器(vs第一),所以写代码还是很爽。 和c++不同的是 对于 枚举中 参数的定义 enum enum_op op, 重要的是不完全支持泛型 。这个就差距了。
// // main.m // HIWorld // // Created by linson on 2018/8/19. // Copyright ? 2018年 linson. All rights reserved. // #import <Foundation/Foundation.h> enum enum_op { enum_op_add, enum_op_minus, enum_op_time, enum_op_divide }; int NumberCaculate(int a,int b,enum enum_op op); int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Hello, World!"); int a=2; int b=4; NSLog(@"%i", NumberCaculate(a, b, enum_op_add)); NSLog(@"%i", NumberCaculate(a, b, enum_op_minus)); } return 0; } int NumberCaculate(int a,int b,enum enum_op op) { int ret=0; switch (op) { case enum_op_add: { ret=a+b; break; } case enum_op_minus: { ret=a-b; break; } case enum_op_time: { ret=a*b; break; } case enum_op_divide: { ret=a/b; } } return ret; }
原文地址:https://www.cnblogs.com/lsfv/p/9581657.html
时间: 2024-10-11 00:23:02