几种常见语言的基本语法对比:数字处理

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

几种常见语言的基本语法对比:数字处理的相关文章

几种常见语言的基本语法对比:字符串

c++: 一段时间不写c++.简直又是忘光了.而其他语言几年不写.几个小时就回想起来了.还是c++太难了.各种用法.学的时候就没学明白. 写代码的时候,一直回想 ,如这个参数,是否用常引用.  vecotr是如何实现的?string是如何实现的.string[] 堆栈是如何放的. 只要涉及到堆.基本不用写代码了.一头郁闷包,算了c++.永别了.例子都不 敢写完.随便写下吧. #include <iostream> #include <vector> using namespace

没人能把一种程序语言的所有语法和关键字都记住,如果不知道,就查阅参考书

没人能把一种程序语言的所有语法和关键字都记住,不知道,就查阅参考书!!! 没人能把一种程序语言的所有语法和关键字都记住,不知道,就查阅参考书!!! 没人能把一种程序语言的所有语法和关键字都记住,不知道,就查阅参考书!!! 没人能把一种程序语言的所有语法和关键字都记住,不知道,就查阅参考书!!! 没人能把一种程序语言的所有语法和关键字都记住,不知道,就查阅参考书!!! 没人能把一种程序语言的所有语法和关键字都记住,不知道,就查阅参考书!!! 没人能把一种程序语言的所有语法和关键字都记住,不知道,就

思考:为什么每一种开发语言的语法都是不一样的呢(语法设置的不一样的出发点是基于什么考虑)?如果设置成一样有什么不可行的吗?

思考:为什么每一种开发语言的语法都是不一样的呢(语法设置的不一样的出发点是基于什么考虑)?如果设置成一样有什么不可行的吗?每一种开发语言中有哪些语法是一样的?可以设置成不一样吗?语法不一样:比如go中定义结构体语法如下:type struct_variable_type struct { age int ; }(可能觉得type和struct两个关键字之间放结构体名称比较合理,两个中间夹一个)而c语言中定义结构体如下:typedef struct struct_variable_type { i

【语言对比】控制流语法对比

在了解各个语言支持的数据类型之后,接下来要对比的,就是各种语言支持的各种控制结构. 1.选择控制结构 Python的选择语句if/elif/else : 语法含义上和C++.JAVA语言没有区别,只是在语法格式上有所不同.首先,采用elif作为else if的缩写(其他的脚本语言中也大部分是这样),其次,对于每一个选择条件,有冒号作为截止,其他的语言都是采用{}来标识代码段的.Python中是没有类似于JAVA和C++中的switch语句的,至于原因,是因为python中有一个很好的方式能够代替

几种常见ECG数据格式及对比

SCP.DICOM.HL7aECG.GDF格式及对比 本文档首先给出SCP.DICOM.HL7aECG.GDF四种心电信号格式的具体数据结构,然后分析其各自的特点及适用范围. 一.SCP-ECG format 这种格式是专门针对ECG数据的标准格式,其中包含了ECG数据波形,患者信息, ECG采集信息以及测量诊断信息等丰富内容. SCP-ECG格式主要分为Title(2 bytes for CRC-checksum and 4 bytes for size of ECG record)和Sect

几种常见排序算法的基本介绍,性能分析,和c语言实现

本文介绍7种常见的排序算法,以及他们的原理,性能分析和c语言实现: 为了能够条理清楚,本文所有的算法和解释全部按照升序排序进行 首先准备一个元素无序的数组arr[],数组的长度为length,一个交换函数swap, 在main函数中实现排序函数的调用,并输出排序结果: void swap(int*x , int*y) { int temp = *x; *x = *y; *y = temp; } int main() { int arr[] = { 1,8,5,7,4,6,2,3}; int le

总结常见的ES6新语法特性

总结常见的ES6新语法特性 ES6给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数(=>).class等等.用一句话来说就是: ES6给我们提供了许多的新语法和代码特性来提高javascript的体验 不过遗憾的是,现在还没有浏览器能够很好的支持es6语法,点这里查看浏览器支持情况,所以我们在开发中还需要用babel进行转换为CommonJS这种模块化标准的语法. 因为下面我会讲到一些es6新特性的例子,如果想要

从Android到iOS开发——(1)、objective-c与java语法对比

从Android到iOS开发--(1).objective-c与java语法 对比 从6月开始,因为有iOS项目要做,就开始了iOS开发之旅,截止今天,已经做了2个项目,给我的感受是iOS开发整体要比Android简单,但是开发细节上两者却又同样的烦恼.那么要想开发iOS,那么到底选择objective-c or swift,我的建议是前者,后者可以在swift2.0和xcode7 以后大家去学习会比较好些.好了,不废话了,下面咱们来看下objective-c和java语法上的比较,希望能让ja

[转]6种常见的数据加载模式设计

原文链接:http://elya.cc/2014/03/31/loading/ 设计师在进行APP设计的设计时,往往会更加专注于界面长什么样,界面和界面之间怎么跳转,给予用户什么样的操作反馈,却偏偏特别容易忽略掉一个比较重要的环节,就是APP数据加载中的设计,所以会导致我们看到的APP,往往有着华丽的启动界面,然后就是漫长的数据加载等待,甚至在无网络的时候,整个处于不可用状态.那么我们怎么处理好界面交互中的加载设计,保证体验无缝衔接,保证用户没有漫长的等待感,而可以轻松自在的享受等待,对加载后的