cece

cece

=====================

测试样式

=======================

 
 
 
循路觅宗师,形影不相离,师知吾亦知,吾乃.....成宗师?
  • 网站导航
  • 显示公告
  • 技术搜索
  • 吃点零食
  • 弄点歌听
  • 生存时间
  • 关闭小魔
 
 
 
X

看到划线了么

转载于:https://www.cnblogs.com/GaoNa/p/7465122.html

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
<template> <view class="container"> <swiper class="swiper" @change="handleSwiperChange" indicator-dots="true"> <!-- 发热量换算 --> <swiper-item> <view class="baikuang2"> <text class="biaoti">{{ $t('heatConversion') }}</text> </view> <view class="baikuang1"> <!-- 初始值选择 --> <view class="search" style="border: 4rpx solid #D0cece;"> <view class="chushi">{{ $t('initial') }}</view> <picker mode="selector" :range="selectOptions1" @change="handleSelect1Change"> <view v-if="!selectVal1" style="color:#D0cece;">{{ $t('clickToSelect') }}</view> <view v-else>{{ selectVal1Label }}</view> </picker> <input placeholder="0J/g" placeholder-class="placeholderStyle" type="number" v-model="y" style="flex:30%;height: 90rpx;border-left: 4rpx solid #D0cece;" /> </view> <!-- 换算结果列表 --> <view v-if="B" class="content1"> <view v-for="(item, index) in choose" :key="index" class="text-wrapper" @click="handleNameClick(item)" > <view class="text1"> <text>{{ item.id }}</text> <text class="xiabiao1">{{ item.a }}</text> </view> <view class="text">{{ item.name }}</view> </view> </view> <!-- 换算选择 --> <view class="search" style="border: 4rpx solid #D0cece;"> <view class="chushi">{{ $t('conversion') }}</view> <picker mode="selector" :range="selectOptions2" @change="handleSelect2Change"> <view v-if="!selectVal2" style="color:#D0cece;">{{ $t('clickToSelect') }}</view> <view v-else>{{ selectVal2Label }}</view> </picker> <view class="zhi" style="flex:30%;height: 90rpx;border-left: 4rpx solid #D0cece;">{{ zhi }}</view> </view> <!-- 参数输入区域 --> <scroll-view class="canshu" scroll-x="true"> <view v-if="Mt === '0'" class="canshu1"> <view>M<text class="xiabiao">t</text>:</view> <input placeholder="0" type="number" v-model="Md" style="flex:40%;display: flex;border-bottom: 4rpx solid #000000;height: 50rpx;" /> <view style="flex:40%;margin-left:20rpx;">%</view> </view> </scroll-view> </view> <view class="page-body"> <view class="page"> <button class="btn" @click="handleCalculate">{{ $t('calculate') }}</button> <button class="btn" @click="handleClear">{{ $t('clear') }}</button> </view> </view> </swiper-item> <!-- 单位换算 --> <swiper-item> <view class="baikuang2"> <text class="biaoti">{{ $t('unitConversion') }}</text> </view> <view class="baikuang1"> <view class="search2" style="border: 4rpx solid #d0cece00;">{{ $t('initialValue') }}:</view> <view class="search1" style="border: 4rpx solid #D0cece;"> <input placeholder="输入数值" type="number" v-model="yy" style="flex:83%;height: 90rpx;border-right: 4rpx solid #D0cece;" /> <picker mode="selector" :range="selectOptions3" @change="handleSelect3Change"> <view v-if="!selectVal3" style="flex:17%;color:#D0cece;">{{ $t('joule') }}</view> <view>{{ selectVal3Label }}</view> </picker> </view> <!-- 换算结果 --> <view class="search2"><text>{{ $t('result') }}:</text></view> <view class="search1" style="border: 4rpx solid #D0cece;"> <view style="flex:83%;height: 90rpx;border-right: 4rpx solid #D0cece;align-items: center;">{{ danwei }}</view> <picker mode="selector" :range="selectOptions4" @change="handleSelect4Change"> <view v-if="!selectVal4" style="flex:17%;color:#D0cece;">{{ $t('joule') }}</view> <view>{{ selectVal4Label }}</view> </picker> </view> </view> </swiper-item> </swiper> </view> </template> <script> export default { data() { return { choose: [ { id: "Q", a: "b,ad", name: this.$t("bulletDryBase"), b: "Qb,ad" }, { id: "Q", a: "gr,ad", name: this.$t("constantVolumeHighDryBase"), b: "Qgr,ad" }, {id:"Q",a:"gr,ar",name:"恒容高位收到基",b:"Qgr,ar"}, {id:"Q",a:"gr,d",name:"恒容高位干基",b:"Qgr,d"}, {id:"Q",a:"gr,daf",name:"恒容高位干燥无灰基",b:"Qgr,daf"}, {id:"Q",a:"net,v,ar",name:"恒容低位收到基",b:"Qnet,v,ar"}, {id:"Q",a:"net,v,ad",name:"恒容低位空干基",b:"Qnet,v,ad"}, {id:"Q",a:"net,v,d",name:"恒容低位干基",b:"Qnet,v,d"}, {id:"Q",a:"net,v,daf",name:"恒容低位干燥无灰基",b:"Qnet,v,daf"}, {id:"Q",a:"net,p,ar",name:"恒压低位收到基",b:"Qnet,p,ar"}, {id:"Q",a:"net,p,ad",name:"恒压低位空干基",b:"Qnet,p,ad"}, {id:"Q",a:"net,p,d",name:"恒压低位干基",b:"Qnet,p,d"}, {id:"Q",a:"net,p,daf",name:"恒压低位干燥无灰基",b:"Qnet,p,daf"}, ], choose1: [ { name: this.$t("joule") }, { name: this.$t("kilojoule") }, { name: this.$t("megajoule") }, { name: this.$t("calorie") }, { name: this.$t("kilocalorie") } ], List: [ {Mt:"",Oad:"",Sbad:"0",Had:"",Mad:"",Nad:"",Aad:"",select1:"Qb,ad",select2:"Qgr,ad",value:"1"}, {Mt:"0",Oad:"",Sbad:"0",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qb,ad",select2:"Qgr,ar",value:"2"}, {Mt:"",Oad:"",Sbad:"0",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qb,ad",select2:"Qgr,d",value:"3"}, {Mt:"",Oad:"",Sbad:"0",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qb,ad",select2:"Qgr,daf",value:"4"}, {Mt:"0",Oad:"",Sbad:"0",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qb,ad",select2:"Qnet,v,ar",value:"5"}, {Mt:"0",Oad:"",Sbad:"0",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qb,ad",select2:"Qnet,v,ad",value:"6"}, {Mt:"0",Oad:"",Sbad:"0",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qb,ad",select2:"Qnet,v,d",value:"7"}, {Mt:"0",Oad:"",Sbad:"0",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qb,ad",select2:"Qnet,v,daf",value:"8"}, {Mt:"0",Oad:"0",Sbad:"0",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qb,ad",select2:"Qnet,p,ar",value:"9"}, {Mt:"0",Oad:"0",Sbad:"0",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qb,ad",select2:"Qnet,p,ad",value:"10"}, {Mt:"0",Oad:"0",Sbad:"0",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qb,ad",select2:"Qnet,p,d",value:"11"}, {Mt:"0",Oad:"0",Sbad:"0",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qb,ad",select2:"Qnet,p,daf",value:"12"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ad",select2:"Qgr,ar",value:"13"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ad",select2:"Qgr,d",value:"14"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,ad",select2:"Qgr,daf",value:"15"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ad",select2:"Qnet,v,ar",value:"16"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ad",select2:"Qnet,v,ad",value:"17"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ad",select2:"Qnet,v,d",value:"18"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,ad",select2:"Qnet,v,daf",value:"19"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,ad",select2:"Qnet,p,ar",value:"20"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,ad",select2:"Qnet,p,ad",value:"21"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,ad",select2:"Qnet,p,d",value:"22"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,ad",select2:"Qnet,p,daf",value:"23"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"",Nad:"",Aad:"",select1:"Qgr,ar",select2:"Qgr,d",value:"24"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,ar",select2:"Qgr,daf",value:"25"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ar",select2:"Qnet,v,ar",value:"26"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ar",select2:"Qnet,v,ad",value:"27"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,ar",select2:"Qnet,v,d",value:"28"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,ar",select2:"Qnet,v,daf",value:"29"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,ar",select2:"Qnet,p,ar",value:"30"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,ar",select2:"Qnet,p,ad",value:"31"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,ar",select2:"Qnet,p,d",value:"32"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,ar",select2:"Qnet,p,daf",value:"33"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,d",select2:"Qgr,daf",value:"34"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,d",select2:"Qnet,v,ar",value:"35"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,d",select2:"Qnet,v,ad",value:"36"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"",select1:"Qgr,d",select2:"Qnet,v,d",value:"37"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,d",select2:"Qnet,v,daf",value:"38"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,d",select2:"Qnet,p,ar",value:"39"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,d",select2:"Qnet,p,ad",value:"40"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qgr,d",select2:"Qnet,p,d",value:"41"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,d",select2:"Qnet,p,daf",value:"42"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,daf",select2:"Qnet,v,ar",value:"43"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,daf",select2:"Qnet,v,ad",value:"44"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,daf",select2:"Qnet,v,d",value:"45"}, {Mt:"0",Oad:"",Sbad:"",Had:"0",Mad:"0",Nad:"",Aad:"0",select1:"Qgr,daf",select2:"Qnet,v,daf",value:"46"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,daf",select2:"Qnet,p,ar",value:"47"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,daf",select2:"Qnet,p,ad",value:"48"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,daf",select2:"Qnet,p,d",value:"49"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qgr,daf",select2:"Qnet,p,daf",value:"50"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qnet,v,ar",select2:"Qnet,v,ad",value:"51"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"",Nad:"",Aad:"",select1:"Qnet,v,ar",select2:"Qnet,v,d",value:"52"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qnet,v,ar",select2:"Qnet,v,daf",value:"53"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,ar",select2:"Qnet,p,ar",value:"54"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,ar",select2:"Qnet,p,ad",value:"55"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,ar",select2:"Qnet,p,d",value:"56"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,ar",select2:"Qnet,p,daf",value:"57"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qnet,v,ad",select2:"Qnet,v,d",value:"58"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qnet,v,ad",select2:"Qnet,v,daf",value:"59"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,ad",select2:"Qnet,p,ar",value:"60"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,ad",select2:"Qnet,p,ad",value:"61"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,ad",select2:"Qnet,p,d",value:"62"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,ad",select2:"Qnet,p,daf",value:"63"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qnet,v,d",select2:"Qnet,v,daf",value:"64"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,d",select2:"Qnet,p,ar",value:"65"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,d",select2:"Qnet,p,ad",value:"66"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"",select1:"Qnet,v,d",select2:"Qnet,p,d",value:"67"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,d",select2:"Qnet,p,daf",value:"68"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,daf",select2:"Qnet,p,ar",value:"69"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,daf",select2:"Qnet,p,ad",value:"70"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,daf",select2:"Qnet,p,d",value:"71"}, {Mt:"0",Oad:"0",Sbad:"",Had:"0",Mad:"0",Nad:"0",Aad:"0",select1:"Qnet,v,daf",select2:"Qnet,p,daf",value:"72"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qnet,p,ar",select2:"Qnet,p,ad",value:"73"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"",Nad:"",Aad:"",select1:"Qnet,p,ar",select2:"Qnet,p,d",value:"74"}, {Mt:"0",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qnet,p,ar",select2:"Qnet,p,daf",value:"75"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"",select1:"Qnet,p,ad",select2:"Qnet,p,d",value:"76"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qnet,p,ad",select2:"Qnet,p,daf",value:"77"}, {Mt:"",Oad:"",Sbad:"",Had:"",Mad:"0",Nad:"",Aad:"0",select1:"Qnet,p,d",select2:"Qnet,p,daf",value:"78"}, ], selectVal1: "", selectVal2: "", selectVal3: "", selectVal4: "", A: "", Mt: "", Oad: "", Sbad: "0", Had: "", Mad: "", Nad: "", Aad: "", yy: "", x: "", zhi: "", B: false, C: false, D: false, E: false, danwei: "" }; }, computed: { selectOptions1() { return this.choose.map(item => item.name); }, selectOptions2() { return this.choose.map(item => item.name); }, selectOptions3() { return this.choose1.map(item => item.name); }, selectOptions4() { return this.choose1.map(item => item.name); }, selectVal1Label() { return this.selectVal1 ? this.choose.find(item => item.b === this.selectVal1).name : ""; }, selectVal2Label() { return this.selectVal2 ? this.choose.find(item => item.b === this.selectVal2).name : ""; }, selectVal3Label() { return this.selectVal3 || this.$t("joule"); }, selectVal4Label() { return this.selectVal4 || this.$t("joule"); } }, onLoad(options) { uni.showShareMenu({ menus: ["shareAppMessage"] }); }, onShareAppMessage(res) { return { title: this.$t("shareToFriend") }; }, methods: { handleSwiperChange(e) { this.setData({ swiperIndex: e.detail.current }); }, handleSelect1Change(e) { const ind = this.choose[e.detail.value]; this.setData({ selectVal1: ind.b, B: true, C: false }); }, handleSelect2Change(e) { const ind = this.choose[e.detail.value]; this.setData({ selectVal2: ind.b, C: true, B: false }); }, handleSelect3Change(e) { const ind = this.choose1[e.detail.value].name; this.setData({ selectVal3: ind }); this.updateDanwei(); }, handleSelect4Change(e) { const ind = this.choose1[e.detail.value].name; this.setData({ selectVal4: ind }); this.updateDanwei(); }, handleNameClick(item) { this.setData({ selectVal2: item.b, C: false }); this.updateZhi(); }, handleCalculate() { this.updateZhi(); }, handleClear() { this.setData({ A: "", S: "", M: "", Md: "", O: "", N: "", H: "", y: "", selectVal1: "", selectVal2: "", Mt: "", Oad: "", Sbad: "0", Had: "", Mad: "", Nad: "", Aad: "", zhi: "", select1: "", select2: "" }); }, updateDanwei() { const s3electVal = this.data.selectVal3; const s4electVal = this.data.selectVal4; const yy = parseFloat(this.data.yy); if (isNaN(yy)) { this.setData({ danwei: "" }); return; } if (s3electVal === s4electVal) { this.setData({ danwei: yy }); } else { const conversionMap = { [this.$t("joule")]: 1, [this.$t("kilojoule")]: 1000, [this.$t("megajoule")]: 1000000, [this.$t("calorie")]: 0.2389, [this.$t("kilocalorie")]: 0.2389 * 1000 }; const fromFactor = conversionMap[s3electVal] || 1; const toFactor = conversionMap[s4electVal] || 1; this.setData({ danwei: (yy * fromFactor / toFactor).toFixed(2) }); } }, updateZhi() { const value = parseFloat(this.data.value); const y = parseFloat(this.data.y); const S = parseFloat(this.data.S); const H = parseFloat(this.data.H); const M = parseFloat(this.data.M); const Md = parseFloat(this.data.Md); const O = parseFloat(this.data.O); const N = parseFloat(this.data.N); const A = parseFloat(this.data.A); // 假设 A 是一个额外参数 if (isNaN(y) || isNaN(value)) { this.setData({ zhi: "" }); return; } let zh = 0; switch (value) { case 0: // 初始值不进行任何换算 zh = y - 0; break; case 1: // 扣除硫的影响 zh = y - 94.1 * S; break; case 2: // 扣除硫的影响并根据水分调整 zh = (y - 94.1 * S) * (100 - Md) / (100 - M); break; case 3: // 扣除硫的影响并放大到干基 zh = (y - 94.1 * S) * 100 / (100 - M); break; case 4: // 扣除硫的影响并放大到无灰干基 zh = (y - 94.1 * S) * 100 / (100 - M - A); break; case 5: // 考虑氢的影响并扣除水分 zh = (y - 94.1 * S - 206 * H) * (100 - Md) / (100 - M) - 23 * Md; break; case 6: // 考虑氢的影响并扣除总水分 zh = y - 94.1 * S - 206 * H - 23 * Md * (100 - M) / (100 - Md); break; case 7: // 考虑氢的影响并放大到干基 zh = (y * 100 - 9410 * S - 20600 * H) / (100 - M) - 2300 * Md / (100 - Md); break; case 8: // 考虑氢的影响并放大到无灰干基 zh = (y - 94.1 * S - 206 * H - 23 * Md * (100 - M) / (100 - Md)) * 100 / (100 - M - A); break; case 9: // 考虑氧和氮的影响并扣除水分 zh = (y - 94.1 * S - 212 * H - 0.8 * O - 0.8 * N) * (100 - Md) / (100 - M) - 24.4 * Md; break; case 10: // 考虑氧和氮的影响并扣除总水分 zh = y - 94.1 * S - 212 * H - 0.8 * O - 0.8 * N - 24.4 * Md * (100 - M) / (100 - Md); break; case 11: // 考虑氧和氮的影响并放大到干基 zh = (y - 94.1 * S - 212 * H - 0.8 * O - 0.8 * N) * 100 / (100 - M) - 2440 * Md / (100 - Md); break; case 12: // 考虑氧和氮的影响并放大到无灰干基 zh = (y - 94.1 * S - 212 * H - 0.8 * O - 0.8 * N - 24.4 * Md * (100 - M) / (100 - Md)) * 100 / (100 - M - A); break; case 13: // 根据水分调整初始值 zh = y * (100 - Md) / (100 - M); break; case 14: // 放大到干基 zh = y * 100 / (100 - M); break; case 15: // 放大到无灰干基 zh = y * 100 / (100 - M - A); break; case 16: // 考虑氢的影响并扣除水分(简化版) zh = (y - 206 * H) * (100 - Md) / (100 - M) - 23 * Md; break; case 17: // 考虑氢的影响并扣除总水分(简化版) zh = y - 206 * H - 23 * Md * (100 - M) / (100 - Md); break; case 18: // 考虑氢的影响并放大到干基(简化版) zh = (y - 206 * H) * 100 / (100 - M) - 2300 * Md / (100 - Md); break; case 19: // 考虑氢的影响并放大到无灰干基(简化版) zh = (y - 206 * H - 23 * Md * (100 - M) / (100 - Md)) * 100 / (100 - M - A); break; case 20: // 考虑氧和氮的影响并扣除水分(简化版) zh = (y - 212 * H - 0.8 * O - 0.8 * N) * (100 - Md) / (100 - M) - 24.4 * Md; break; case 21: // 考虑氧和氮的影响并扣除总水分(简化版) zh = y - 212 * H - 0.8 * O - 0.8 * N - 24.4 * Md * (100 - M) / (100 - Md); break; case 22: // 考虑氧和氮的影响并放大到干基(简化版) zh = (y - 212 * H - 0.8 * O - 0.8 * N) * 100 / (100 - M) - 2440 * Md / (100 - Md); break; case 23: // 考虑氧和氮的影响并放大到无灰干基(简化版) zh = ((y - 212 * H - 0.8 * O - 0.8 * N) - 24.4 * Md * (100 - M) / (100 - Md)) * 100 / (100 - M - A); break; default: zh = ""; } if (!isNaN(zh)) { this.setData({ zhi: `${zh.toFixed(2)} J/g` }); } else { this.setData({ zhi: "" }); } } } }; </script> <style> page { height: 100%; } .swiper { position: relative; height: 100%; } .swiper .wx-swiper-dot { width: 300rpx; height: 8rpx; margin-bottom: -10rpx; border-radius: 3rpx; background: rgb(255, 255, 255); } .swiper .wx-swiper-dot-active { background: #1E6FFF; } .baikuang2 { width: 100%; top: 0rpx; position: fixed; height: 160rpx; } .biaoti { top: 100rpx; position: fixed; left: 0; right: 0; margin: 0 auto; text-align: center; } .baikuang1 { width: 90%; top: 160rpx; position: fixed; left: 0; right: 0; margin: 0 auto; } .search1 { background-color: #ffffff; display: flex; width: 100%; margin-top: 15rpx; text-align: center; font-size: 35rpx; height: 90rpx; line-height: 90rpx; align-items: center; } .search { background-color: #ffffff; display: flex; width: 100%; margin-top: 15rpx; border-radius: 2em; text-align: center; font-size: 35rpx; height: 90rpx; } .search2 { display: flex; width: 100%; margin-top: 15rpx; font-size: 35rpx; height: 90rpx; flex-direction: row; align-items: center; } .chushi { display: flex; height: 90rpx; justify-content: center; line-height: 90rpx; border-right: 4rpx solid #D0cece; width: 20%; } .select { display: flex; height: 90rpx; justify-content: center; line-height: 90rpx; width: 50%; } .content1 { display: flex; width: 100%; margin-top: 10rpx; text-align: center; left: 0; right: 0; margin: 0 auto; font-size: 35rpx; } .content3 { position: fixed; width: 44%; margin-top: 380rpx; text-align: center; background-color: rgb(243, 245, 247); right: 0rpx; margin: 0 auto; } .content2 { display: flex; width: 100%; height: 60rpx; font-size: 35rpx; } .content { display: flex; height: 2000rpx; background-color: rgba(0, 0, 255, 0); } .text1 { margin-left: 30rpx; margin-top: 8rpx; display: flex; } .zhi { display: flex; height: 90rpx; justify-content: center; line-height: 90rpx; } .text { margin-left: 10rpx; margin-top: 8rpx; display: flex; } .xiabiao1 { margin-top: 15rpx; font-size: 20rpx; } .canshu { left: 0; right: 0; margin: 0 auto; margin-left: 0rpx; margin-top: 0rpx; background-color: #ffffff00; width: 100%; height: 1000rpx; border-radius: 1em; } .can { left: 0; right: 0; margin: 0 auto; margin-top: 40rpx; height: 30rpx; margin-bottom: 0rpx; width: 90%; display: flex; font-size: 30rpx; color: #af1c1c; } .canshu1 { left: 0; right: 0; margin: 0 auto; width: 100%; margin-top: 40rpx; margin-bottom: 40rpx; height: 50rpx; display: flex; text-align: center; font-size: 35rpx; line-height: 50rpx; } .xiabiao { font-size: 23rpx; } .page-body { width: 100%; position: fixed; bottom: 0rpx; height: 200rpx; } .page { width: 100%; display: flex; margin-top: 50rpx; } .btn { border-radius: 1.4em; background-color: #1E6FFF; width: 30%; color: #ffffff; } .hover { top: 0rpx; background: rgb(255, 255, 255); color: #1E6FFF; } .placeholderStyle { color: #D0cece; } </style>
06-01
<think>好的,我需要帮助用户优化或理解涉及热量和单位换算逻辑的Vue代码。首先,用户的问题是关于Vue代码的,特别是涉及热量和单位转换的部分。根据用户提供的引用,他们可能之前在处理Vue2到Vue3的迁移问题,或者组件化、响应式方面的内容。首先,我应该考虑热量和单位换算的逻辑通常涉及表单输入、计算属性和数据绑定。在Vue中,这通常通过v-model、computed属性和方法来实现。用户可能遇到性能问题、代码结构混乱或者兼容性问题。根据引用[1],用户可能遇到Vue2和Vue3的差异问题,比如模板语法、属性变化等。例如,Vue3中使用的是v-model的不同方式,或者组合式API。所以需要检查代码是否使用了Vue3的语法,比如setup函数或<scriptsetup>语法糖。 引用[3]提到组件化和MVVM模式,可能用户代码结构不够组件化,导致难以维护。优化建议可能包括将换算逻辑拆分为独立组件,或者使用自定义hook来复用逻辑。 引用[4]提到响应式机制,所以需要确保热量计算部分正确使用了Vue的响应式系统,比如reactive或ref,避免不必要的重新渲染。接下来,我需要生成一个结构清晰的回答,分步骤说明优化方法,并确保代码示例符合Vue3的规范。同时,要参考用户提供的引用中的解决方案,比如替换模板文件或调整代码结构。可能的问题点包括:使用Vue2的选项式API而非组合式API,模板中的方法调用过多导致性能问题,或者未合理使用计算属性。优化方法可能包括使用计算属性缓存结果、用组合式API组织代码、提取可复用的逻辑到自定义hook,以及处理单位换算时的精度问题。此外,用户可能需要代码示例,比如如何用组合式API重构代码,或者如何用watchEffect处理副作用。同时,需要确保示例中的LaTeX公式正确,比如单位换算公式使用$...$,独立公式用$$...$$。最后,生成相关问题,帮助用户进一步深入,比如如何测试换算逻辑,或如何国际化处理单位。需要确保问题与热量和单位换算相关,并结合Vue的特性。</think>### 优化热量和单位换算逻辑的Vue代码指南 #### 一、理解代码结构 热量和单位换算逻辑通常涉及以下核心部分: 1. **输入绑定**:使用`v-model`连接表单元素和响应式数据 2. **计算属性**:通过`computed`实现自动换算,例如: $$Q = mc\Delta T$$ 其中$Q$表示热量,$m$是质量,$c$是比热容,$\Delta T$是温差 3. **单位转换**:处理国际单位制(焦耳)与英制单位(卡路里)的转换 #### 二、优化方案(Vue3组合式API) ```vue <script setup> import { ref, computed } from 'vue' // 响应式数据 const mass = ref(0) const specificHeat = ref(4200) // 水的比热容(J/kg·℃) const tempDiff = ref(1) const selectedUnit = ref('joules') // 计算热量(基础公式) const baseHeat = computed(() => mass.value * specificHeat.value * tempDiff.value ) // 单位换算逻辑 const convertedHeat = computed(() => { const CONVERSION_RATE = 4.184 // 1卡路里 = 4.184焦耳 return selectedUnit.value === 'calories' ? baseHeat.value / CONVERSION_RATE : baseHeat.value }) // 格式化显示 const formattedHeat = computed(() => `${convertedHeat.value.toFixed(2)} ${selectedUnit.value}` ) </script> <template> <div class="calculator"> <input v-model.number="mass" type="number" placeholder="质量 (kg)"> <input v-model.number="tempDiff" type="number" placeholder="温差 (℃)"> <select v-model="selectedUnit"> <option value="joules">焦耳</option> <option value="calories">卡路里</option> </select> <div class="result">{{ formattedHeat }}</div> </div> </template> ``` #### 三、优化关键点说明 1. **响应式架构**: - 使用`ref`建立基础数据的响应式绑定[^4] - 通过`computed`实现自动计算链(baseHeat → convertedHeat → formattedHeat) 2. **计算逻辑解耦**: - 将基础公式与单位换算分离 - 每个计算属性只负责单一职责 3. **性能优化**: - 使用`.number`修饰符自动转换输入类型 - 通过`toFixed(2)`控制计算精度,避免重复计算[^2] 4. **可维护性增强**: - 将转换系数定义为常量`CONVERSION_RATE` - 使用语义化的变量命名(避免magic number) 5. **Vue3特性应用**: - 使用`<script setup>`语法糖简化代码结构[^3] - 通过组合式API组织相关逻辑 #### 四、扩展优化建议 1. **自定义hook封装**: ```javascript // useHeatCalculator.js export function useHeatCalculator() { // ...上述响应式数据和计算逻辑 return { mass, specificHeat, tempDiff, selectedUnit, formattedHeat } } ``` 2. **输入验证增强**: ```vue <input v-model.number="mass" :class="{ invalid: mass < 0 }" @blur="mass = Math.max(mass, 0)" > ``` 3. **复杂换算处理**: ```javascript // 支持多级单位转换 const UNIT_CONVERSION = { joules: { base: 1, suffix: 'J' }, calories: { rate: 1/4.184, suffix: 'cal' }, kilojoules: { rate: 0.001, suffix: 'kJ' } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值