c++、php、java、python、javascript对比,同一功能用5种编程语言写一遍,谁才是最好的编程语言?_c++ java php
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
感觉编程语言里面大家使用最多的就是这几种了吧最火的是JavaScriptpython好像说是无所不能php没悬念还是世界上最好的编程语言java用的人应该最多吧c++吗据说比较难所以就是逼格最高的语言吧。
其实这几种语言除了python其他几个还都有共通之处都是带花括号{}的C系语法而python吧不带花括号感觉和之前的VBscript有点像废话不多说今天就用这5种语言写同一个功能我一会分别把代码粘出来大家对语法做一下比较看看更喜欢那种
昨天闲聊群里有人发了一串JavaScript代码功能呢就是在控制台输出用字符拼出的字符画“V ME 50”v me 50算是最近很火的一个梗了运行效果如下图
代码如下
const arr = [
[1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],
[2, 8, 12, 13, 19, 20, 23, 31, 39, 44],
[3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44],
[4, 6, 12, 15, 17, 20, 23, 36, 39, 44],
[5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],
];
function demo(arr) {
let str = '';
for (let i = 0; i < arr.length; i++) {
for (j = 0; j < 50; j++) {
if (arr[i].indexOf(j) > -1) {
str += '█';
} else {
str += ' ';
}
}
str += '\n';
}
return str;
}
console.log(demo(arr));
看着挺有意思吧然后我把这段代码移植到了C++上代码和效果如下
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class vMe50{
private:
template <typename T>
int arrLen(T& arr){
return sizeof(arr)/sizeof(arr[0]);
}
public:
vMe50(){
string str=this->demo();
cout << str;
}
string demo(){
vector<vector<int> > arr;
int a0[]={1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44};
int a1[]={2, 8, 12, 13, 19, 20, 23, 31, 39, 44};
int a2[]={3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44};
int a3[]={4, 6, 12, 15, 17, 20, 23, 36, 39, 44};
int a4[]={5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44};
vector<int> b0(a0,a0+this->arrLen(a0));
vector<int> b1(a1,a1+this->arrLen(a1));
vector<int> b2(a2,a2+this->arrLen(a2));
vector<int> b3(a3,a3+this->arrLen(a3));
vector<int> b4(a4,a4+this->arrLen(a4));
arr.push_back(b0);
arr.push_back(b1);
arr.push_back(b2);
arr.push_back(b3);
arr.push_back(b4);
string str;
for(short i=0;i<arr.size();i++){
for(short j=0;j<50;j++){
if(count(arr[i].begin(), arr[i].end(), j)){
str+="0";
}else{
str+=" ";
}
}
str+="\n";
}
return str;
}
};
int main(){
vMe50* v=new vMe50();
delete v;
return true;
}
效果一样但代码麻烦了不少毕竟C++是强类型语言处理不规则数组不像JavaScript那样轻松。
然后我又把代码移植到了世界上最好的编程语言php上大家看下优不优雅代码和效果如下
<?php
namespace vMe50;
class vMe50{
public function __construct(){
echo $this->demo();
}
private function demo(){
$arr=[
[1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],
[2, 8, 12, 13, 19, 20, 23, 31, 39, 44],
[3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44],
[4, 6, 12, 15, 17, 20, 23, 36, 39, 44],
[5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],];
$str="";
foreach($arr as $key=>&$value){
foreach(range(0,50) as $k=>&$v){
if(in_array($v, $value)){
$str.="8";
}else{
$str.=" ";
}
}
$str.="\n";
}
return $str;
}
}
new vMe50();
确实比C++版简单不少毕竟php的array实现了各种类型的数组。
然后我又把代码用java重写一遍代码和效果如下
import java.util.Arrays;
import java.util.List;
import java.util.LinkedList;
public class vMe50{
public static void main(String[] args){
System.out.print(
demo()
);
}
private static String demo(){
List<List<Integer> > arr=new LinkedList<>();
arr.add(new LinkedList<>(Arrays.asList(1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44)));
arr.add(new LinkedList<>(Arrays.asList(2, 8, 12, 13, 19, 20, 23, 31, 39, 44)));
arr.add(new LinkedList<>(Arrays.asList(3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44)));
arr.add(new LinkedList<>(Arrays.asList(4, 6, 12, 15, 17, 20, 23, 36, 39, 44)));
arr.add(new LinkedList<>(Arrays.asList(5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44)));
String str="";
for(int i=0;i<arr.size();i++){
for(int j=0;j<50;j++){
if(arr.get(i).contains(j)){
str+="8";
}else{
str+=" ";
}
}
str+="\n";
}
return str;
}
}
最后就再用无所不能的python语言重写一遍吧代码和效果如下
class vMe50:
def __init__(self):
print(self.demo())
def demo(self):
arr=(
(1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44),
(2, 8, 12, 13, 19, 20, 23, 31, 39, 44),
(3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44),
(4, 6, 12, 15, 17, 20, 23, 36, 39, 44),
(5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44)
)
str=""
for i in arr:
for j in range(0,50):
if j in i:
str+="8"
else:
str+=" "
str+="\n";
return str
v=vMe50();
虽然我个人不喜欢python因为他没有花括号但感觉他确实diao这几个版本里代码量最小甚至比JavaScript还简单。
以上就是c++、php、java、python、javascript这五种编程语言语法的对比到底谁才是最好的编程语言