Swift学习笔记二(类、函数、结构)

本文介绍Swift语言的基础知识,包括结构体和类的定义与使用,并通过一个树形结构的例子展示了如何创建节点及遍历整个树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写得有点粗糙凑合着看吧。 
 
//  main.swift
//  Class
//
//  Created by fuyun on 14-9-8.
//  Copyright (c) 2014年 fuyun. All rights reserved.
  
import Foundation
/* 熟悉类、函数、结构的基本使用*/ 
  struct Data{ //使用STRUCT定义结构,结构体总是通过被复制的方式在代码中传递,因此请不要使用引用计数。
    var data:String=""
        init (p_data:String){
        data=p_data
    }
    func getData(){
        println(data)
    }
    
class Tree { //使用CLASS来定义类,拥有继承\运行时检查与转换
    var data:Data
    var parentNode:Tree?
    var childNode:[Tree?]=[nil]
    var level:Int=0
    init (p_data:Data){ //构造函数初始化
          data=p_data 
func append(p_str:String)->Tree?{ //func用来定义实例方法,它是属于某个特定类、结构体或者枚举类型实例的方法
         var t:Tree?=Tree(p_data: Data(p_data: p_str))
         childNode.append(t)
         t!.parentNode=self
         t!.level=t!.level+level+1
         return t
          
}   
func getParentNode()->Tree?{ //获得父节点
        if parentNode===nil{
           println("Object is empty.")
        }else{
         return parentNode
        }
        return nil
    
func getNextNode()->[Tree?]{ //获得子节点
        if childNode.isEmpty{
            println("Object is empty.")
        }else{
            return childNode
        }
        return [nil] 
    }
func Repeat(p_count: Int,p_reStr:String,p_sourctStr:String)->String{ //inout输入输出
    var str:String=""
    if p_count==0 {
        return p_sourctStr
    
    for i in 0...p_count   {
        str=p_reStr+str
    
    return str+p_sourctStr
func getAllNode(p_rootNode:Tree?){
    if p_rootNode != nil {
        println(Repeat(p_rootNode!.level," ","")+"|"+Repeat(p_rootNode!.level,"-",p_rootNode!.data.data))
         for v in p_rootNode!.childNode{
                if v? != nil {
                  getAllNode(v!)
                }
        }
    }
//--------------------------------------------------------------- 
var root=Tree(p_data: Data(p_data: "Ⓐ")) //根节点
//添加一级子节点
for v in 1...2{ 
    var node=root.append("1."+String(v))
    for v2 in 1...3{
        var node2=node!.append("2."+String(v2))
    }
}
//添加同级子节点
var node=root.append("Ⓑ")
for v in 1...2{ 
    var node2=node!.append("1."+String(v))
    for v3 in 1...3{
        var node3=node2!.append("2."+String(v3))
    }
getAllNode(root) 
 /* 
Swift 中类和结构体有很多共同点。共同处在于: 
定义属性用于储存值
定义方法用于提供功能
定义附属脚本用于访问值
定义构造器用于生成初始化值
通过扩展以增加默认实现的功能
符合协议以对某类提供标准功能 
与结构体相比,类还有如下的附加功能: 
继承允许一个类继承另一个类的特征
类型转换允许在运行时检查和解释一个类实例的类型
解构器允许一个类实例释放任何其所被分配的资源
引用计数允许对一个类的多次引用
*/
输出:
|Ⓐ
  |--1.1
   |---2.1
   |---2.2
   |---2.3
  |--1.2
   |---2.1
   |---2.2
   |---2.3
  |--Ⓑ
   |---1.1
    |----2.1
    |----2.2
    |----2.3
   |---1.2
    |----2.1
    |----2.2
    |----2.3
Program ended with exit code: 0
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值