当前位置: 首页 > news >正文

佛山网站策划哪家专业seo智能优化系统

佛山网站策划哪家专业,seo智能优化系统,环保公司网站建设内容,杭州做网站需要多少钱一、结构定义 struct-翻译为结构/结构体 总体上有两种定义方式#xff1a;带有详细属性名的#xff1b;不带属性名#xff08;元组#xff09; 从工程角度出发#xff0c;并不推荐不带属性的定义方式#xff0c;因为不友好。希望rust后面不要搞类似好像很友好#xff…一、结构定义 struct-翻译为结构/结构体 总体上有两种定义方式带有详细属性名的不带属性名元组 从工程角度出发并不推荐不带属性的定义方式因为不友好。希望rust后面不要搞类似好像很友好但是其实起到干扰作用的语法。 如果再考虑到一些rust的其它问题定义一个结构其实也不是那么容易。 示例 struct Point{x:f64,y:f64} struct Triangle(Point,Point,Point); /**  * 家庭结构体s  */ struct Family {     name: String,     father: String,     mather: String,     children: VecString, } /**  * 这都什么狗屎语法。  */ struct Booka {     name: a str,     author: a str,     price: f64,     pubyear: i32, } fn main() {     let mut family Family {         name: String::from(家),         father: String::from(爸爸),         mather: String::from(妈妈),         children: vec![],     }; family.children.push(String::from(老大-独龙));     family.children.push(String::from(老二-独眼));     family.children.push(String::from(老三-独秀));     family.children.push(String::from(老四-嘟嘟));     family.children.push(String::from(老五-杜牧)); //打印家庭结构体     println!(         家庭:{},父亲:{},母亲:{},         family.name, family.father, family.mather     );     for child in family.children {         println!(孩子:{}, child);     }     let mut 三国演义 Book {         name: 三国演义,         author: 罗贯中,         price: 29.8,         pubyear: 1300,     };          //各种创建结构实例的方式     // 方式一双点号复制     let mut 红楼梦Book{         name:红楼梦,         author:曹雪芹,         ..三国演义     };     //方式二: 略属性名     let 西游记write_book(西游记,吴承恩,24.0,1525);     //方式三:使用基于元组定义的。 比java的record还简单 let books[三国演义,红楼梦,西游记];     for i in 0..books.len() {         print_book(books[i]);     }     let p1Point{x:10.0,y:20.0};     let p2Point{x:20.0,y:20.0};     let p3Point{x:20.0,y:10.0};     let tTriangle(p1,p2,p3);     print_triangle(t); } fn print_book(book:Book){     println!(         书名:{},作者:{},价格:{},出版年:{},         book.name, book.author, book.price, book.pubyear     ); } fn print_triangle(t:Triangle){     println!(三点坐标:);     println!({},{},t.0.x,t.0.y);     println!({},{},t.1.x,t.1.y);     println!({},{},t.2.x,t.2.y); } fn write_booka(name:a str,author:a str,price:f64,pubyear:i32)-Booka{     Book{         name,         author,         price,         pubyear     } } 在上例中结构Book使用了非常奇怪的语法 struct Booka { name: a str, author: a str, price: f64, pubyear: i32, } 这个能够定义出来是因为编译器提示的。 作为初学者先绕过这个吧。  rust结构体实例的属性赋值也有两种方式 属性逐一赋值 双点号复制属性值 例如以下就是 let mut 红楼梦Book{         name:红楼梦,         author:曹雪芹,         ..三国演义     }; 二、几种打印方式 至少有4种打印方式 逐一访问属性名 println!使用宏符号:? println!使用宏符号:#? 使用dbg! 后面三种方式要求定义结构的时候在结构前添加 #[derive(Debug)] 这个东西应该怎么称呼了 属性还是编译指示符?有点乱七八杂的。  从宏观上而言很多类似的都是可以称为编译指示符所以为了更加精准一些我愿意称为功能编译指示。 通过这个功能编译指示rust编译器会自动实现特定功能。 示例 #[derive(Debug)] struct Family{     father:String,     mather:String,     address:String } fn main(){     let mut mfFamily{         father:String::from(lu),         mather:String::from(hu),         address:String::from(中国)     };     println!(我家-{},{},{},mf.father,mf.mather,mf.address);     print_family(mf);     print_family_use_dbg(mf); } fn print_family(f:Family){     //你不能直接打印否则会有奇奇怪怪的错误提示     //println!({},f);  // 这个会提示错误所以注释掉了 //使用奇怪符号 :?打印结构体     println!(我家:?-{:?},f); //使用奇怪的符号可以打印结构体 :#?     println!(我家:#?-{:#?},f); } fn print_family_use_dbg(f:Family){     dbg!(f); } 三、定义结构内的函数 在没有看书本正文之前我以为和java的record一样在struct内部定义函数。 其实不是 如果要为结构体定义函数必须在结构体外。 不知道为什么要那样 难道内部定义的话有其它用途 示例 #[derive(Debug)] struct Cube{     length: u32,     width: u32,     height: u32, } impl Cube{     fn volume(self) - u32{         return self.length * self.width * self.height;     }     fn is_bigger_than(self, other: Cube) - bool{         return self.volume() other.volume();     } } fn main() {     let cube Cube{length: 10, width: 12, height: 25};     let cube2 Cube{length: 15, width: 10, height: 30};     println!(立方体的体积{}立方厘米,cube.volume());     let is_bigger cube.is_bigger_than(cube2);     match is_bigger{         true println!(cube的体积{}大于cube2体积{},cube.volume(), cube2.volume()),         false println!(cube的体积{}小于cube2体积{},cube.volume(), cube2.volume()),     }; } 结构体的函数有几个特点 在结构体外使用impl xxxx {}的方式其中xxx是结构体名称 在一个impl xxx{}结构中可以定义多个函数 书本建议我们函数的第一个方法总是 self,这点和python有点类似 参数self虽然有定义但是调用的时候不需要显示传递因为这是编译器实现的 四、一点小补充 4.1定义没有成员的结构 在很多OOP允许我们定义没有成员的对象。 我们可以把struct大体当做对象。 在rust中也可以定义没有成员的结构例如 #[derive(Debug)] struct NoItem;  struct NoItem2(); let nodNoItem{}; println!(空结构体:{:?},nod);   rust允许这样做是因为struct这个类型具有很多作用即使它不用于存储数据也有很多作用。具体什么作用只能等待深入后了解。 总之在rust中绝大部分复杂的类型都是基于结构定义的。 4.2struct大有作用 前有言某种程度上可以把struct视为OOP中的对象 虽然rust不是明面上的OOP但还是吸收了很多OOP的营养。 总之许多复杂类型都是基于结构定义的。具体不一一罗列。 五、小结 结构体无疑是一个有用的东西它就算垃圾袋/宝物袋一样什么都可以往里装大大方便了工程师 关注灵活就业新业态关注公账号贤才宝
http://www.hkea.cn/news/14548297/

相关文章:

  • 城建中心官网查询证书网站搜索优化价格
  • 大同网站建设哪家好网站建设与管理实践收获
  • 万网网站备案证书仙居制作网站
  • 网站目标规划wordpress 转载 插件
  • 影响网站alexa排名的主要因素有wordpress奇客影院
  • 平面设计类的网站蓝色机械营销型网站
  • 类似织梦的建站cms知名品牌策划设计公司
  • 什么网站做一手项目好网站商城html模板
  • 有域名怎样做网站网站部署 模板
  • 安徽国贸网站建设网站开发是什么专业百度
  • 网站制作过程内容湖南网站建设的公司排名
  • 移动互联网的概念贵阳seo推广一般费用是
  • 连云港建设局电力网站邢台网站推广多少钱
  • 杭州高端定制网站西部数码WordPress开启伪静态
  • 五个h5制作网站服务器购买网站
  • 怎样运营推广网站建立企业网站方案
  • 有什么交易网站源码dj网站模板免费下载
  • 搜索引擎 网站推广 举例免费的网页制作软件
  • 服务器怎么放网站吗上海公司注册流程和费用
  • 室内设计素材网站哪个最好西安网站开发软件
  • 工程行业做的好的网站有哪些内容wordpress分类页不要显示全文
  • 广东省网站集约化建设方案php网站建设思路方案
  • nodejs网站开发教程小程序代理加盟条仿
  • 中国十大购物网站公司名字大全集
  • 化妆网站模板免费企业名录搜索
  • 做网站的的价位研发网站要多久
  • 阿里去可以做几个网站网站qq访客统计
  • 百度收不到我的网站手机网站开发是什么
  • WordPress建站去掉后缀优速网站建设工作室
  • 平台网站开发可行性分析linux下网站搭建